使用SC.exe设置服务凭据密码失败

Gra*_*son 11 windows command-line windows-services

我知道过去曾问过这个问题,但没有提供令人满意的答案.

我正在使用SC命令配置服务的凭据.

SC.exe config "SERVICE NAME" obj= "domain\user" password= "password"
Run Code Online (Sandbox Code Playgroud)

这成功完成,但是当我启动该服务时,它无法执行登录.
[ NET START "service name"]

如果我只手动更新services.msc中的密码,那么当我启动服务时,它可以正常工作.

我有数百台服务器在部署过程中更新此更改,因此不能选择手动干预.

我尝试使用配置更新登录帐户,然后使用另一个配置命令来输入密码.

从所有帐户,这SC.exe对密码不起作用,微软没有任何帮助.

想法?

Ric*_*h K 7

当您将服务配置为通过服务属性窗口中的正常路由在特定帐户下运行时,会自动授予该帐户作为服务登录的权限。当您使用 sc.exe 时,您还必须授予用户作为服务登录的权限。

以服务身份登录


eri*_*cbn 7

除了在进行更改之前停止服务,并授予用户作为服务登录的权限之外,我还必须添加type= own参数,否则它将失败:

[SC] ChangeServiceConfig FAILED 87:

The parameter is incorrect
Run Code Online (Sandbox Code Playgroud)

所以这是有效的命令:

SC.EXE config "ServiceName" type= own obj= "domain\user" password= "password"
Run Code Online (Sandbox Code Playgroud)

它甚至可以使用密码中的特殊字符,因为我在双括号之间有密码.


小智 0

设置密码之前尝试停止该服务:

sc.exe stop "<my_service>" 4:4:3
sc.exe config "<my_service>" obj= "\.<local_acc_name>" password= "<local_acc_pass>"
sc.exe start "<my_service>"
Run Code Online (Sandbox Code Playgroud)