Powershell 6.2 和 Get-CimInstance 远程停止/启动/重新启动服务问题

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

所以我现在遇到了很大的障碍。我当时使用的是 PowerShell 5.1,并且 Get-WmiObjectWin32_Service 类可以完美地远程停止/启动/重新启动服务。但是,我发现 PowerShell 6 中已删除 .StopService() 方法(我用它来绕过我一直遇到的依赖项问题)。此外,我还发现 -ComputerName 变量也已从许多不同的 commandlet 中删除。

自从从 Stop-Service commandlet 中删除了 -ComputerName 后,我正在努力弄清楚如何正确处理服务本身的停止。我可以毫无问题地检索我想要的服务。我似乎不知道如何处理停止服务。

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

谢谢。

最佳答案

好吧,别介意这个问题。我决定以另一种方式进行谷歌搜索,我偶然发现了我需要的语法。对于那些想知道的人,您不能直接从返回的对象运行命令。例如,您可以直接在之前的服务上执行“$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

关于Powershell 6.2 和 Get-CimInstance 远程停止/启动/重新启动服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55601862/

相关文章:

python - 在Windows服务中运行python文件

java - 将 Java 应用程序作为服务运行

azure - 从 AzureAD 安全的 powershell 核心 Azure Function 获取 ClaimsPrincipal/Identity

javascript - 从 NodeJS 调用 PowerShell

windows - 如何让 Standard EXE 和 WinService EXE 相互通信?

linux - 如何创建运行命令的函数?

json - 根据用户输入的Powershell过滤JSON

powershell - Powershell中特定组织单位的Get-ADComputer

powershell - 在PowerShell中将Refresh()发送到WMI

azure - 如果没有数据,需要创建带标题的 Powershell 输出文件