PowerShell 技能连载 - 屏蔽终止性错误

有时候,您会注意到虽然已经为 -ErrorAction 参数指定了 "SilentlyContinue" 值,cmdlet 还是会抛出错误。

-ErrorAction 参数只能隐藏非终止性错误(原本被 cmdlet 处理的错误)。不被 cmdlet 处理的错误称为“终止性错误”。这些错误通常是和安全相关的,并且不能被 -ErrorAction 屏蔽。

所以如果您是一个非管理员用户,虽然用 -ErrorAction 指定了屏蔽错误,以下调用将会抛出一个异常:

要屏蔽终止性错误,您必须使用异常处理器:

try
{
  Get-EventLog -LogName Security 
}
catch
{} 

本文国际来源:Hiding Terminating Errors

评论