2015-10-20 47 views
1

我不明白为什么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." 
} 

} 
+1

尝试删除'-ErrorAction Stop',我相信这是防止它陷入捕获。 – AutomatedOrder

+1

-ErrorAction Stop会导致将该命令抛出的任何错误视为终止错误。 Try-Catch块专门用于处理终止错误,所以我不认为这是问题。 – EBGreen

+1

@Matt - 你看到一个错误和你的catch块的输出吗? – EBGreen

回答

0

这里有同样的问题。我们看到错误块,但没有看到catch中的自定义错误消息。

我需要时,不能添加的用户(找不到用户)或任何其他特定的错误和转储这些帐户到CSV文件陷阱......

编辑: 当然的时刻我发布这个我找到答案...添加-ErrorAction停止使它正常工作,否则它只是显示消息,我猜不会返回错误代码...实际的消息可以使用此捕获捕获

Catch{ 
    Echo $User $_.exception.Message 
}