如何為域控制器上的 Windows 服務指定 NetworkService 或 LocalService?
這個問題與這些現有問題不重複:
- AUTHORITY\NetworkService 不存在(問題是針對 Windows Server 2003
- 如何以“NT Authority\NetworkService”的身份執行程序?(這是一個腳本問題)
- https://stackoverflow.com/questions/34966029/adding-permissions-for-nt-authority-networkservice(這是關於將
NT AUTHORITY
主體添加到 ACL,而不是在查找使用者 GUI 中選擇主體)我在不同的電腦上配置了 Windows 服務:
- 工作站(非域)電腦(執行 Windows 10)
- 工作站(非域)Windows Server(執行 Windows Server 2016)
- 域工作站(執行 Windows 10)
- 域成員伺服器(執行 Windows Server 2016)
- 域控制器(執行 Windows Server 2016)
加入域的電腦和成員伺服器:
在除域控制器之外的所有電腦中,
services.msc
> 服務屬性 > 登錄屬性表的“選擇使用者”彈出視窗讓我選擇NT AUTHORITY
內置主體NETWORK SERVICE
和LOCAL SERVICE
(又名NT AUTHORITY\NetworkService
和NT AUTHORITY\LocalService
)。如果我忽略“搜尋使用者”視窗並在“
network service
選擇使用者”視窗中鍵入“”並點擊“檢查名稱”,則它正確解析為NETWORK SERVICE
:域控制器:
但是,在此 Windows Server 2016 域控制器上,“選擇使用者”彈出視窗不允許我指定任何本地電腦名稱(這很有意義:本地電腦的安全系統成為域安全系統)。
…這意味著無法解析、搜尋或選擇
NETWORK SERVICE
orLOCAL SERVICE
:當我直接在登錄選項卡中輸入它時,我收到此錯誤:
帳戶名無效或不存在,或指定帳戶名的密碼無效。
我注意到在域控制器上,“選擇使用者或服務帳戶”視窗只允許我選擇“服務帳戶”或“使用者”,而不是“內置安全主體”。
加入域的工作站或成員伺服器:
域控制器(Windows Server 2012 R2,但與 2016 相同):
我知道我可以通過
sc config
手動使用或編輯系統資料庫(或在“此帳戶:”文本框中鍵入“Local Service
”或“Network Service
”)來設置服務登錄帳戶,但我將使用“選擇使用者或域控制器上 Services.msc 之外的“服務帳戶”對話框?
根據您的最終螢幕截圖,您省略了帳戶名稱中的空格。試試
Local Service
吧。如果這不起作用,您可以在命令行上執行此操作,如下所示,我將其寫為:
sc config ServiceName obj= "NT AUTHORITY\Local Service" password= ""
請注意,在命令行版本中,
LocalService
或者Local Service
是可以接受的,但在 GUI 中只有後者有效。我不知道為什麼,但就是這樣。
在域控制器上執行此操作時,您需要將“內置安全主體”添加到您的對像類型中。實際上,您只搜尋使用者和服務帳戶對像類型。