2017-01-09 16 views
1

私は奇妙な問題があります。Powershellのエラーをキャッチ

これについてアドバイスできますか?

try 
{ 
$LookingForRemoteMailboxOnPrem = Get-RemoteMailbox $info -ErrorAction Stop | select -ExpandProperty UserPrincipalName 
} 
catch 
{ 
string]$t = $Error[0] 
} 

をしかし、この1つはない:

この1が正常に動作している

try 
{ 
$EnableRemoteMailbox = Enable-RemoteMailbox $info -RemoteRoutingAddress $remote -PrimarySmtpAddress $info2 -ErrorAction Stop 
} 
catch 
{ 
[string]$t = $Error[0] 
} 

保存されないエラーを$に変数

+2

処理されていないエラーは何ですか? '$ ErrorActionPreference = 'Stop''を設定しても同じ動作をしますか? –

+0

代わりに '$ t = $ _'を試してください –

+0

@AnsgarWiechers $ ErrorActionPreferenceがContinue – user3574248

答えて

0

$ErrorActionPreference Tは、デフォルトでContinueに設定されています。これは、PowerShellがエラーから "回復"できる場合、例外をスローしないことを意味します。 -ErrorActionパラメーターを使用して、すべてのコマンドレットで動作を変更できます。

このlinkは良い例を与える:

Try {dir c:\missingFolder} Catch [System.Exception] {"Caught the exception"} Finally {$error.Clear() ; "errors cleared"}

文字列"Caught the exceptionは、PowerShellのウィンドウでは発生しません。 -ErrorActionStopに設定すると例外が発生します。

詳細はhereと記載されています。

関連する問題