【问题标题】:PowerShell Stop-Service/Start-Service not working on a specific serverPowerShell Stop-Service/Start-Service 在特定服务器上不起作用
【发布时间】:2012-12-27 15:54:09
【问题描述】:

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

以下命令适用于Deploy1

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

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

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

Deploy2 上,以下命令起作用,并显示服务及其状态。

Get-Service "MyService" -ComputerName Target

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

那么 Deploy2 有什么问题呢?

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

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

    【讨论】:

    • 谢谢,显然在 Deploy1 上,本地部署了同名服务,因此该命令有效(尽管它停止了本地服务而不是远程服务)。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 2015-07-11
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2019-12-10
      相关资源
      最近更新 更多