В случае, если у вас есть компьютеры, которые недоступны с помощью Invoke-Command, либо потому, что WinRm не запущен, либо PsRemoting отключен, это хороший, надежный способ, которым я всегда находил работы, по крайней мере, в моей среде:
$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 и настроить WinRM через Invoke-WmiMethod.
* С момента Invoke-WmiMethod мгновенно возвращается без ОЖИДАНИЯ для того, чтобы команды действительно были выполнены:
-Создать цикл, который выполняется до тех пор, пока не будет включена функция PsRemoting (до тех пор, пока не сработает тест Invoke-Command).
Не болееПроблемы с Invoke-Command!Наслаждайтесь и настраивайте на все, что душе угодно.