У меня есть следующая работа в PowerShell:
$job = start-job {
...
c:\utils\MyToolReturningSomeExitCode.cmd
} -ArgumentList $JobFile
Как мне получить доступ к коду выхода, возвращенному c: \ utils \ MyToolReturningSomeExitCode.cmd
? Я пробовал несколько вариантов, но единственный, который мне удалось найти, работает, это следующий:
$job = start-job {
...
c:\utils\MyToolReturningSomeExitCode.cmd
$LASTEXITCODE
} -ArgumentList $JobFile
...
# collect the output
$exitCode = $job | Wait-Job | Receive-Job -ErrorAction SilentlyContinue
# output all, except the last line
$exitCode[0..($exitCode.Length - 2)]
# the last line is the exit code
exit $exitCode[-1]
Я нахожу этот подход слишком кривым для моего тонкого вкуса. Может ли кто-нибудь предложить более приятное решение?
Важно , я прочитал в документации, что PowerShell должен запускаться от имени администратора, чтобы работа удаленного взаимодействия работала. Я не могу запустить его от имени администратора, поэтому -ErrorAction SilentlyContinue
. Итак, я ищу решения, не требующие прав администратора.
Спасибо.