如果由于WinRm未运行或PsRemoting被禁用而无法使用Invoke-Command的计算机,这是一个很好的,确定的方式我每次都在我的环境中找到工作:/ p>
$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
说明:
- 计算机名称的变量。
- 运行两个命令以启用PsRemoting并通过Invoke-WmiMethod设置WinRM。
*由于Invoke-WmiMethod立即返回而没有等待实际执行的命令:
- 运行一个循环,直到启用PsRemoting(直到测试Invoke-Command工作)。
不再有Invoke-Command问题!享受并调整您心中的内容。
答案 0 :(得分:0)
您可以使用Get-wmi直接获得结果
Get-WmiObject Win32_service -ComputerName $poste | select State,Name,DisplayName
答案 1 :(得分:0)
问题已更改为社区提供答案和有用的修复。