我在嘗試編寫創建Exchange郵箱的powershell腳本。只要郵箱不存在,此工作正常,但當我嘗試捕獲任何錯誤並將其報告回來時,腳本就像每個單詞都很好一樣運行。在Exchange命令行管理程序中捕獲錯誤
我在一個已經存在的用戶上運行腳本,它顯示錯誤,但它正常返回,就好像郵箱已經創建一樣。
我發現this question,它解決了「爲什麼」,我猜Enable-Mailbox命令只會拋出非終止錯誤。
無論如何,所有建議的解決方案來捕捉這些錯誤失敗。該cmdlet似乎忽略$ ErrorActionPreference變量$?總是$ true,無論是否發生錯誤。 $錯誤總是包含一些東西,所以在這裏以及沒有檢查。
這是我使用的腳本代碼,非常基本。
param([string]$uid, [string]$email)
trap [Exception] {
"ERROR: " + $_.Exception.Message
exit
}
Enable-Mailbox -Identity $uid -Database HaiTest-MBDataBase-01 -PrimarySmtpAddress $email
"SUCCESS: mailbox created successfully"
它與其他一切工作,它只是在Exchange管理外殼造成麻煩。 Exchange環境是Exchange 2010服務器。
有沒有什麼辦法檢查cmdlet的錯誤?
哇,將ErrorAction直接傳遞給實際工作的cmdlet。這有助於很多,謝謝。 – 2011-12-21 13:06:44