2015-10-20 72 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 
}