3

我有三台服务器,我们称它们为Deploy1Deploy2Target。所有服务器都运行完全更新的 Windows Server 2008R2。域用户admin1在所有服务器上都配置为管理员,这是我运行所有命令的用户。

以下命令适用于Deploy1

Get-Service "MyService" -ComputerName Target | Stop-Service

Deploy2上运行相同的命令时,该命令失败并显示以下消息:

找不到服务名称为“MyService”的任何服务。

Deploy2上,以下命令有效,并显示服务及其状态。

Get-Service "MyService" -ComputerName Target

现在,我知道还有其他方法可以通过 PowerShell 停止/启动服务,但我喜欢这种方法,因为它会自动等待服务器实际停止/启动。

那么Deploy2有什么问题呢?

4

2 回答 2

3

Powershell v2.0 在如何实现 Get-Service 返回的对象方面存在错误(功能?)。它实际上并没有正确设置 ComputerName 属性。因此,它只能影响本地服务。如果您升级到Windows Management Framework 3.0(进而升级到 Powershell v3),则该错误已修复并且可以正常工作。

于 2012-12-27T20:10:10.177 回答
2

这行得通吗?如果没有,是否产生错误?

(Get-Service "MyService" -ComputerName Target).Stop()
于 2012-12-27T19:20:53.367 回答