PowerShell Stop-Service / Start-Service无法在特定服务器上运行

时间:2012-12-27 15:54:09

标签: powershell powershell-v2.0

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

以下命令适用于 Deploy1

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

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

  

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

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

Get-Service "MyService" -ComputerName Target

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

那么 Deploy2 会出现什么问题?

2 个答案:

答案 0 :(得分:3)

Powershell v2.0有一个关于如何实现Get-Service返回的对象的错误(功能?)。它实际上没有正确设置ComputerName属性。因此,它只会影响本地服务。如果您升级到Windows Management Framework 3.0(以及Powershell v3),则会修复该错误,并且该错误将正常运行。

答案 1 :(得分:2)

这有用吗?如果没有,是否产生错误?

(Get-Service "MyService" -ComputerName Target).Stop()