私は、Exchangeメールボックスを作成するpowershellスクリプトを作成しようとしています。これは、メールボックスがまだ存在しない限り正常に動作しますが、エラーをキャッチしてそれを報告すると、スクリプトはすべてがうまくいったかのように実行されます。Exchange管理シェルのキャッチエラー
私はすでに既存のユーザーでスクリプトを実行し、それがエラーを示しているが、メールボックスが作成されたかのように正常に戻ります。
私は「なぜ」を解決した、this questionを発見し、私は有効-Mailboxコマンドは唯一の非終了エラーがスローされますね。とにかく
、これらのエラーは失敗キャッチするため提案されたすべてのソリューションを提供しています。このコマンドレットは、$ ErrorActionPreference変数$を無視しているようです。エラーが発生したかどうかにかかわらず、常に$ trueです。 $ errorには常に何かが含まれているので、ここでは何もチェックしません。
これは、私は、非常に基本的な使用しているスクリプトコードです。
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サーバーです。
エラーのためにコマンドレットをチェックする方法はありますか?
実際に動作したコマンドレットに直接ErrorActionを渡すことで、try/catch(PowerShell 2.0)を使用することもできます。これは、多くのおかげで、ありがとう。 –