Выезд Тест Joel . При реализации этих методов, поскольку независимый разработчик был полезной проблемой.
Я думаю, что если вы запустите команду таким образом на другом сервере, вы не сможете получить там код возврата вашего скрипта. Это потому, что Invoke-Command
просто запускает одну команду на удаленном компьютере, вероятно, в рамках одного временного сеанса, и вы не можете снова подключиться к этому сеансу.
Что вы можете do, однако, создает сеанс на удаленном компьютере и вызывает ваш скрипт в этом сеансе. После этого вы можете просто снова проверить возвращаемое значение в этом сеансе. Так что что-то вроде:
$s = New-PSSession -ComputerName <server_name>
Invoke-Command -Session $s -ScriptBlock { ... }
Invoke-Command -Session $s -ScriptBlock { $? }
может сработать. Таким образом, вы получаете доступ к тому же состоянию и переменным, что и первая Invoke-Command
на удаленном компьютере.
Также Invoke-Command
очень маловероятно, чтобы пройти через удаленную команду возвращаемое значение. Как бы вы тогда выяснили, что сама Invoke-Command
не сработала?
ETA: Хорошо, я неправильно вас понял относительно «кода возврата». Я предполагал, что вы имели в виду $?
. В любом случае, согласно документации, вы можете запустить сценарий на удаленном компьютере следующим образом:
Чтобы запустить локальный сценарий на удаленных компьютерах, используйте команду
Параметр FilePath
вInvoke-Command
.Например, следующая команда запускает сценарий
Sample.ps1
на компьютерахS1
иS2
:invoke-command -computername S1, S2 -filepath C: \ Test \ Sample.ps1
Результаты сценария возвращаются на локальный компьютер. Вы не нужно копировать файлы.