如何在多台计算机上远程修改WinRM服务的凭据

时间:2014-01-14 19:53:04

标签: windows scripting

我正在尝试准备我们的环境,包括用于PowerShell远程处理的Windows XP / 7,Windows 2003/2008。我已经通过Microsoft Procedures之后的组策略配置了WinRM服务和侦听器以及防火墙入站规则。但是,我在管理站(RSAT)上使用GP编辑器而不是DC上的GP编辑器,它提供了一个应该从未配置过的附加配置选项。即服务运行的凭据。未触动它会自动获取我的域管理员帐户。现在,WinRM服务是在错误的帐户下配置的,并且它不会在任何计算机上启动。服务器或客户端。当我尝试在任何计算机上手动启动服务时,我收到以下错误消息:

Windows could not start the Windows Remote Management (WS-Management) service on Local Computer.

Error 1079: The account specified for this service is different from the account specified for other services running in the same process"

经过一些研究和修改后,我了解到该服务默认情况下应该在网络服务帐户下运行,密码为空。当我手动将任何计算机上的凭据更改为网络服务并清除密码框时,我会收到一个确认弹出窗口:

The account NT AUTHORITY\Network Service has been granted the Log On As A Service right.

之后,WinRM服务启动就好了。我需要找到一种方法来远程更改多台计算机上此服务的凭据。显然我不能使用PowerShell,因为服务是PSRemoting的先决条件。我在一个启动脚本中通过GPO在一个测试OU上尝试sc.exe,其中一台机器如下:

sc.exe config "WinRM" obj= "Network Service" password= ""
net stop WinRM
net start WinRM
然而不幸的是,它绝对没有做任何事情。我在所有win7 / win2008机器上都启用了UAC,我也有WinXP和Win2003机器。

有没有人有任何解决方案的想法?也许一个可能有效的脚本?我不是一个狡猾的家伙,所以如果你能帮助我一个脚本,你还可以告诉我如何使用它吗?

所有回复都将不胜感激。

2 个答案:

答案 0 :(得分:1)

添加到此帖子。以下命令将用于完成上述操作。

sc.exe config“WinRM”obj =“NetworkService”

在测试中,我发现NetworkService帐户实际上在两个单词之间没有空格,但在GUI中它确实显示了空格。

答案 1 :(得分:0)

我迟到了几个月,但希望这可以帮助别人。我刚刚在测试和生产环境中通过配置WinRM服务的组策略首选项并手动输入来解决此问题:

User: NT AUTHORITY\NetworkService
Password: <space>

完全的。您必须在我写入时手动输入帐户名称,密码是单个空格。用户名和密码的其他组合对我没有用。如果其他组合有效,我很想知道。