簡體   English   中英

啟動Windows服務,但管理員提供“訪問被拒絕”

[英]Starting Windows service as anything but Administrator gives 'Access denied'

我正在安裝我正在開發的Windows服務。 它設置為作為網絡服務運行。 當我嘗試啟動此服務時,我收到一個消息框,告訴我訪問被拒絕。 但是,網絡服務確實可以訪問可執行文件及其包含的整個目錄。

我也嘗試將服務作為本地服務和本地系統啟動,但我收到同樣的錯誤。 如果我以管理員身份運行它(我也是我登錄的帳戶),我沒有收到任何錯誤,服務按預期啟動。

我查看了事件日志,但只有一個條目包含相同的信息:“訪問被拒絕。”

我檢查了procmon以查看它試圖訪問的內容,令我驚訝的是,當服務管理器嘗試打開我的可執行文件時,訪問被拒絕; 即使它有完全訪問權限。

為什么拒絕訪問可執行文件? 下面是可執行文件權限的截圖,我嘗試啟動服務時procmon的輸出,以及第一個給ACCESS DENIED的CreateFile的詳細信息。

權限

Procmon清單

Procmon細節

問題實際上是服務可執行文件是用EFS加密的; 錯誤代碼(訪問被拒絕)讓我失望。

該服務正在輸出到無意中加密的文件夾,因此當我將服務復制到安裝位置時,它仍然是加密的。 取消選中文件屬性中的“加密內容以保護數據”復選框后,將為所有用戶正確啟動該服務。

這解釋了為什么服務只會以當前用戶身份啟動,而不是任何系統用戶,包括特權“本地系統”帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM