Powershell Invoke WmiMethod-快速修复PsRemoting/WinRM问题(用于Invoke命令使用)
如果您的计算机由于WinRm未运行或PsRemoting被禁用而无法使用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
$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命令。