Diferença entre $? e $ LastExitCode no PowerShell

No PowerShell, qual é a diferença entre$? e$LastExitCode?

Eu leiosobre variáveis ​​automáticase dizia:

$? Contains the execution status of the last operation. It contains TRUE if the last operation succeeded and FALSE if it failed.

$LastExitCode Contains the exit code of the last Windows-based program that was run.

Na definição de$? isso não explica o que significa sucesso e falha.

Eu pergunto porque eu presumi que$? é True se e somente se $ LastExitCode for 0, mas eu encontrei um contra-exemplo surpreendente:$ LastExitCode = 0, mas $? = False no PowerShell. Redirecionando stderr para stdout dá NativeCommandError.

questionAnswers(1)

yourAnswerToTheQuestion