0

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

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

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

谢谢。

4

1 回答 1

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-09T23:52:20.537 回答