Obtendo ExitCode usando Start-Process e WaitForExit em vez de -Wait

Eu estou tentando executar um programa do PowerShell, aguarde a saída e, em seguida, obter acesso ao ExitCode, mas não estou tendo muita sorte. Eu não quero usar-Wait comStart-Process, como eu preciso de algum processamento para continuar em segundo plano.

Aqui está um script de teste simplificado:

<code>cd "C:\Windows"

# ExitCode is available when using -Wait...
Write-Host "Starting Notepad with -Wait - return code will be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)
Write-Host "Process finished with return code: " $process.ExitCode

# ExitCode is not available when waiting separately
Write-Host "Starting Notepad without -Wait - return code will NOT be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru)
$process.WaitForExit()
Write-Host "Process exit code should be here: " $process.ExitCode
</code>

Executar este script causaráBloco de anotações para ser iniciado. Depois que isso é fechado manualmente, o código de saída será impresso e será iniciado novamente, sem usar-wait. Nenhum ExitCode é fornecido quando este é encerrado:

<code>Starting Notepad with -Wait - return code will be available
Process finished with return code:  0
Starting Notepad without -Wait - return code will NOT be available
Process exit code should be here:
</code>

Eu preciso ser capaz de realizar processamento adicional entre iniciar o programa e esperar que ele saia, então não posso usar-Wait. Como posso fazer isso e ainda ter acesso à propriedade .ExitCode desse processo?

questionAnswers(5)

yourAnswerToTheQuestion