我知道过去曾问过这个问题,但没有提供令人满意的答案.
我正在使用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对密码不起作用,微软没有任何帮助.
想法?
我正在尝试使用 powershell 脚本来更改服务的登录凭据。根据此 Microsoft 文档(示例 8),我使用以下代码:
$credential = Get-Credential
Set-Service -Name serviceName -Credential $credential
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,系统提示我输入用户名和密码,我输入了这些信息,但随后出现以下错误:
Set-Service : A parameter cannot be found that matches parameter name 'Credential'.
At line:2 char:28
+ Set-Service -Name serviceName -Credential $credential
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Service], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetServiceCommand
Run Code Online (Sandbox Code Playgroud)
这可能是什么原因造成的?这台机器不在域中,但我以本地管理员身份登录,并以管理员身份运行 powershell。我有权更改这些服务,并且可以通过通常的服务 GUI 正常输入登录详细信息。