Powershell详细输出链式异常

时间:2011-05-10 00:56:27

标签: powershell powershell-v2.0 cmdlets cmdlet

我是PowerShell的新手,并使用我们的一个自定义cmdlet解决问题。默认情况下,cmdlet中抛出的所有异常都具有最少的信息,没有堆栈跟踪,也没有关于链接异常的信息。有没有办法启用详细的详细输出?

3 个答案:

答案 0 :(得分:4)

$ error集合包含当前会话中抛出的所有未处理异常的实时列表。最后一个例外是$ error [0]。这样做的好方法是尽快捕获错误:

ps> invoke-something
error: ...
ps> $e = $error[0]

使用get-member探索$ e。

答案 1 :(得分:4)

我已经使用这种技术来获取嵌套的错误对象:

$error[0]|format-list -force

答案 2 :(得分:3)

这是一个很好的功能,我从网上偷了一个人。我在我的个人资料中有这个,并会愉快地进一步传播它:

#Get detailed information on an error
function Resolve-Error ($ErrorRecord=$Error[0])
{
   $ErrorRecord | Format-List * -Force
   $ErrorRecord.InvocationInfo |Format-List *
   $Exception = $ErrorRecord.Exception
   for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException))
   {   "$i" * 80
       $Exception |Format-List * -Force
   }
}