При создании собственной методики управления резервными копиями на множестве серверов MS-SQL я потратил кучу времени на изучение механизма передачи значений в powershell при удаленных вызовах, поэтому пишу самому себе памятку, а вдруг кому-то еще пригодится.
Итак, возьмем для начала простейший скрипт и запустим его локально:
Для запуска скриптов я буду пользоваться следующим CMD-файлом, каждый раз его приводить не стану:
На экране мы увидим следующее:
Итак, возьмем для начала простейший скрипт и запустим его локально:
$exitcode = $args[0]
Write-Host 'Out to host.'
Write-Output 'Out to output.'
Write-Host ('ExitCode: ' + $exitcode)
Write-Output $exitcode
$host.SetShouldExit($exitcode)
Для запуска скриптов я буду пользоваться следующим CMD-файлом, каждый раз его приводить не стану:
@Echo OFF
PowerShell .\TestOutput1.ps1 1
ECHO ERRORLEVEL=%ERRORLEVEL%
На экране мы увидим следующее:
Out to host.
Out to output.
ExitCode: 1
1
ERRORLEVEL=1