Powershell Invoke WmiMethod-快速修复PsRemoting/WinRM问题(用于Invoke命令使用)

Powershell Invoke WmiMethod-快速修复PsRemoting/WinRM问题(用于Invoke命令使用),powershell,wmi,Powershell,Wmi,如果您的计算机由于WinRm未运行或PsRemoting被禁用而无法使用Invoke命令访问,那么我发现这是一种很好的方法,至少在我的环境中是这样的: $target_comp = "abc1234" Invoke-WmiMethod -ComputerName $target_comp -Path win32_process -Name create -ArgumentList "powershell.exe -command Enable-PSRemoting -SkipNetwork

如果您的计算机由于WinRm未运行或PsRemoting被禁用而无法使用Invoke命令访问,那么我发现这是一种很好的方法,至少在我的环境中是这样的:

 $target_comp = "abc1234"

 Invoke-WmiMethod -ComputerName $target_comp -Path win32_process -Name create -ArgumentList "powershell.exe -command Enable-PSRemoting -SkipNetworkProfileCheck -Force"
 Invoke-WmiMethod -ComputerName $target_comp -Path win32_process -Name create -ArgumentList "powershell.exe -command winrm quickconfig -quiet"


 do {
     $testpsremoting = invoke-command -computername $target_comp -scriptblock {"test"}
    } while (!$testpsremoting) 



    #REST OF CODE
说明:

-声明计算机名的变量。
-运行这两个命令,通过调用WmiMethod启用PsRemoting和设置WinRM。
*由于Invoke WmiMethod会立即返回,而无需等待命令实际执行:
-创建一个循环,直到PsRemoting被启用(直到TestInvoke命令起作用)。


没有更多的调用命令问题!尽情享受并调整自己的心情。

您可以使用Get wmi直接获得结果

Get-WmiObject Win32_service -ComputerName $poste | select State,Name,DisplayName

问题已更改,以便为社区提供答案和有用的解决方案。

您希望从这次电话中得到什么?声明
Create()
方法只返回已启动进程的
ProcessID
,因此在我看来,它就像预期的那样工作。是的,似乎我没有使用正确的命令。事实上,我想用Invoke-WmiMethod运行我的命令,以避免执行Invoke命令。现在我意识到我只需要使用Invoke WmiMethod启用PSRemoting,然后自由地使用Invoke命令。谢谢,但是get服务就是一个例子。最后,我使用invokewmimethod启用PSRemoting,然后自由地使用Invoke命令。