¿Qué es $? un alias para en Powershell?

Dentro de un guión que me mostraron hoy estaba la línea:

If ($?) {
#do some stuff
}

Nunca he visto el signo de dólar signo de interrogación alias $? antes y no puedo determinar a través de Google para qué sirve.

Cuando lo ejecuto en una ventana de PowerShell, generalmente devuelve True, pero ocasionalmente devuelve False. Mis pruebas parecen sugerir que devuelve False cuando el código que lo precede se ejecuta en un error (y dentro del contexto del script que vi en esto podría tener sentido), por lo que esta es quizás una forma alternativa de manejar un TRY .. CATCH guión.

Ejemplo:

PS C:\Users\me> $?
True
PS C:\Users\me> $?
True
PS C:\Users\me> blah
blah : The term 'blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ blah
+ ~~~~
+ CategoryInfo          : ObjectNotFound: (blah:String) [],         CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\me> $?
False
PS C:\Users\me> $?
True

¿Alguien puede verificar por mí si este es el caso o si tiene algún otro propósito?

Respuestas a la pregunta(1)

Su respuesta a la pregunta