У меня есть следующая работа в 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
.Итак, я ищу решения, не требующие прав администратора.
Спасибо.