我正在运行以下powershell脚本来更改远程服务的登录用户帐户,然后启动它。
$result = $remoteService.Change($null,$null,$null,$null,$null,$null,$logonAccount, $logonPassword,$null,$null,$null)
if ($result.ReturnValue -eq '0')
{
write-host "logon account changed"
$remoteService.StartService();
}
else
{
write-host "Error: $result.ReturnValue"
};
如果我的密码只包含字母数字字符,我可以看到服务启动,如下面的结果所示
logon account changed
ReturnValue : 0
但是,另一个帐户包含带有@,#和 - 等特殊字符的密码,如果我使用此帐户,我的服务启动将失败,错误代码为15。
logon account changed
ReturnValue : 15
我使用sc命令(示例)
的结果相同sc \\servername config servicename obj= domain\accountname password= w@e#dF-sxs32
sc \\servername start servicename
[SC] StartService FAILED 1069:
The service did not start due to a logon failure.
我可以手动更改服务的登录用户,并使用上述相同的帐户从Windows services.msc UI成功启动它。所以我认为问题可能在于密码。
我为此苦苦挣扎。任何人都可以请帮助。 感谢
答案 0 :(得分:0)
我检查过,你的sc命令效果很好。
sc \\mycomp config myservice obj= mycomp\User1 password= w@e#dF-sxs32
所以,问题不在@#-_
的密码中您的域\ accountname用户似乎没有权限或权限在服务器名称服务器上运行任何服务。
有关将帐户登录为服务权限的信息,请参阅MSDN https://technet.microsoft.com/en-us/library/cc794944(v=ws.10).aspx