检索 Powershell cmdlet 的实际 return 代码

Retrieving actual return code of a Powershell cmdlet

我正在尝试从 Powershell cmdlet 获取 return 代码。此 return 代码将传递到 Saltstack cmd.run 状态 (success_retcodes parameter)

我的应该产生错误的 cmdlet:Get-PSSessionConfiguration test

这将产生错误,因为 test 会话不存在。 运行 $? 之后总是生成 True 无论上述 cmdlet 是否失败。

这个练习的目的是故意不通过我认为采用数字值的上述参数使我在 Saltstack 中的状态失败。 如有任何建议,我们将不胜感激。

为什么不使用好的 ol' try/catch 块?

Try {
    Get-PSSessionConfiguration test -ErrorAction stop
    return $true
} Catch {
    return $false
}

$LASTEXITCODE returns 最后退出代码。或者,$Error 是存储所有错误的地方。从那里您可以过滤您想要捕获的错误。

$Error | Select Exception