【问题标题】:Powershell 6.2 and Get-CimInstance to remotely stop/start/restart service issuesPowershell 6.2 和 Get-CimInstance 远程停止/启动/重启服务问题
【发布时间】:2019-08-31 06:45:04
【问题描述】:

所以我现在遇到了很大的障碍。我在 PowerShell 5.1 中工作,并且 Get-WmiObjectWin32_Service 类在远程远程停止/启动/重新启动服务方面工作得非常好。但是,我发现 .StopService() 方法已在 PowerShell 6 中删除(我用它来绕过我一直遇到的依赖关系问题)。同样,我发现-ComputerName 变量也已从许多不同的命令行开关中删除。

自从从Stop-Service 命令行开关之类的东西中删除了-ComputerName,我正在努力弄清楚如何正确处理服务本身的停止。我可以毫无问题地检索我想要的服务。我似乎无法弄清楚如何处理停止服务。

尽量详细。我知道我错过了一些愚蠢的小东西,但我所有的谷歌搜索似乎都使用 PowerShell 5 返回了所有内容,但在 6 上却很少。

谢谢。

【问题讨论】:

    标签: powershell windows-services powershell-core powershell-v6.0


    【解决方案1】:

    好吧,别管这个问题了。我决定以另一种方式接近我的谷歌搜索,我偶然发现了我需要的语法。对于那些想知道的人,您不能直接从返回的对象运行命令。因此,例如,您可以以前直接在服务上执行“$service.StopService()”。但是,现在您必须通过执行“Invoke-CimMethod -Name StopService”来调用该 StopService 方法,并且只有在您通过管道将 Get-CimInstance 返回的对象传递给它之后。所以完整的语法看起来像这样。

    get-ciminstance win32_service -filter "Name='spooler'" | Invoke-CimMethod -Name StartService
    

    我找到了一个非常好的网站,可以解释并提供非常好的示例来说明 Cim 实例为何以及如何成为它们的样子。

    https://4sysops.com/archives/managing-services-the-powershell-way-part-7

    【讨论】:

      猜你喜欢
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多