我有三台服务器,我们称之为 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 会出现什么问题?
答案 0 :(得分:3)
Powershell v2.0有一个关于如何实现Get-Service返回的对象的错误(功能?)。它实际上没有正确设置ComputerName属性。因此,它只会影响本地服务。如果您升级到Windows Management Framework 3.0(以及Powershell v3),则会修复该错误,并且该错误将正常运行。
答案 1 :(得分:2)
这有用吗?如果没有,是否产生错误?
(Get-Service "MyService" -ComputerName Target).Stop()