无法通过命令行设置服务用户帐户

无法通过命令行设置服务用户帐户

我正在编写一个 puppet 脚本来自动在 Windows 2008 R2 SP2 上创建 TeamCity 代理。
为此,我需要通过命令行设置自定义 TeamCity 服务用户帐户。

到目前为止,我已经尝试了以下一系列命令:

1)授予我的自定义帐户“作为服务登录权利”:

ntrights +r SeServiceLogonRight -u teamcity@omnicorp

Windows 确认命令成功运行:

授予 teamcity@omnicorp SeServiceLogonRight ...成功

2)设置服务用户账户:

(Get-WmiObject Win32_Service -Filter “name='TCBuildAgent'”)。更改($Null,$Null,$Null,$Null,$Null,$Null,'teamcity@omnicorp','密码')

...命令失败,错误 21:

__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
返回值 :21
PSComputerName:

以下是我目前所知道的情况:

  • 错误 21 转换为“无效参数已传递给服务。”
  • 用户名/密码有效 - 我知道这一点,因为我能够通过 services.msc 管理单元进行此更改
  • 每当我手动应用自定义用户时,上述命令就会开始起作用(我已经在许多新虚拟机上进行了测试)。
  • 这告诉我ntrights单凭这一点是不足以允许域帐户被服务用户使用的。

这就是我被困住的地方。所有证据表明ntrights已经足够,但仍然缺少一些东西。

答案1

您可以尝试这个:

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

第6个参数对应“DesktopInteract”,正常情况下,该服务不能被授予与桌面交互的权限,除非是本地系统账户。

相关内容