电源外壳错误捕获
问题描述:
我不明白为什么PowerShell不会为office365运行脚本(Exchange在线)时捕获错误。尽管使用了try和catch块,但每次都会收到原始错误消息。电源外壳错误捕获
Foreach ($groups in $groups)
{
try
{
Add-DistributionGroupMember "$Groups" -Member "$UserName" -BypassSecurityGroupManagerCheck -ErrorAction Stop
#write-host "Added user $userName to $Groups";
}
Catch
{
Write-Output "`t $userName is already a member of $Groups."
}
}
答
这里有同样的问题。我们看到错误块,但没有看到catch中的自定义错误消息。
我需要时,不能添加的用户(找不到用户)或任何其他特定的错误和转储这些帐户到CSV文件陷阱......
编辑: 当然的时刻我发布这个我找到答案...添加-ErrorAction停止使它正常工作,否则它只是显示消息,我猜不会返回错误代码...实际的消息可以使用此捕获捕获
Catch{
Echo $User $_.exception.Message
}
尝试删除'-ErrorAction Stop',我相信这是防止它陷入捕获。 – AutomatedOrder
-ErrorAction Stop会导致将该命令抛出的任何错误视为终止错误。 Try-Catch块专门用于处理终止错误,所以我不认为这是问题。 – EBGreen
@Matt - 你看到一个错误和你的catch块的输出吗? – EBGreen