Windows-Server-2008-R2

無法通過命令行設置服務使用者帳戶

  • February 15, 2015

我正在編寫一個木偶腳本來自動在 Windows 2008 R2 SP2 上創建 TeamCity 代理。
為此,我需要通過命令行設置自定義 TeamCity 服務使用者帳戶。

到目前為止,我已經嘗試了以下命令序列:

1)授予我的自定義帳戶“作為服務登錄的權利”:

ntrights +r SeServiceLogonRight -u teamcity@omnicorp

Windows 確認命令成功執行:

將 SeServiceLogonRight 授予 teamcity@omnicorp … 成功

2)設置服務使用者帳號:

(Get-WmiObject Win32_Service -Filter “name=‘TCBuildAgent’”).Change( $ Null, $ 空值, $ Null, $ 空值, $ Null, $ 空,’teamcity@omnicorp’,‘密碼’)

…命令失敗,錯誤 21:

__GENUS:2

CLASS:

PARAMETERS

SUPERCLASS: DYNASTY:__PARAMETERS

__RELPATH:

__PROPERTY_COUNT:1

__DERIVATION:{}

__SERVER: __NAMESPACE: __PATH: ReturnValue:21

PSComputerName :

到目前為止,這是我所知道的:

  • 錯誤 21 轉換為“已將無效參數傳遞給服務”。
  • 使用者名/密碼有效 - 我知道這一點,因為我可以通過 services.msc 管理單元進行此更改
  • 每當我手動應用自定義使用者時,上述命令就會開始工作(我已經在許多新的 VM 上對此進行了測試)。
  • 這告訴我ntrights僅憑域帳戶是不足以讓服務使用者使用的。

這就是我卡住的地方。所有證據表明ntrights就足夠了,但仍然缺少一些東西。

你可以試試這個:

(Get-WmiObject Win32_Service -Filter "name='TCBuildAgent'").Change($Null,$Null,$Null,$Null,$Null,$False,'teamcity@omnicorp','password')

第6個參數對應“DesktopInteract”,一般情況下,服務不能被授予與桌面互動的權限,除非是Local System賬號。

引用自:https://serverfault.com/questions/655043