web-dev-qa-db-ja.com

powershellコマンドが成功したかどうかを確認するにはどうすればよいですか?

Powershellコマンドが成功したかどうかを確認することはできますか?

例:

Set-CASMailbox -Identity:blocks.5 -OWAMailboxPolicy "DoNotExists"

エラーの原因:

Outlook Web App mailbox policy "DoNotExists" wasn't found. Make sure you typed the policy name correctly.
    + CategoryInfo          : NotSpecified: (0:Int32) [Set-CASMailbox], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : 9C5D12D1,Microsoft.Exchange.Management.RecipientTasks.SetCASMailbox

FullyQualifiedErrorIdを取得することは可能だと思うので、次のことを試しました。

$ test = Set-CASMailbox -Identity:blocks.5 -OWAMailboxPolicy "DoNotExists"

しかし、エラーはテスト変数に転送されていないようです。

したがって、ここで次のようなことを実行する正しい方法は何ですか?

$test = Set-CASMailbox -Identity:blocks.5 -OWAMailboxPolicy "DoNotExists"
if ($test -eq "error")
{
Write-Host "The Set-CASMailbox command failed"
}
else
{
Write-Host "The Set-CASMailbox command completed correctly"
}
2
Sonnenbiene

読んだ - Set-CASMailbox参照

  • OwaMailboxPolicyパラメータ:

OwaMailboxPolicyパラメーターは、メールボックスのOutlook on the webメールボックスポリシーを指定します。 Outlook on the webメールボックスポリシーを一意に識別する任意の値を使用できます。例えば:

  • 名前
  • 識別名(DN)
  • GUID

デフォルトのOutlook on the webメールボックスポリシーの名前はDefaultです。

about_CommonParameters任意のコマンドレットで使用できるパラメーター)を読み取り、ErrorVariableまたはErrorActionを適用します。

ErrorVariable

Set-CASMailbox -Identity:blocks.5 -OWAMailboxPolicy "DoNotExists" -ErrorVariable test
if ($test.Count -neq 0)      ### $test.GetType() is always ArrayList
{
    Write-Host "The Set-CASMailbox command failed: $test"
}
else
{
    Write-Host "The Set-CASMailbox command completed correctly"
}

ErrorActionおよびTry、Catch、Finally(read about_Try_Catch_FinallyTry、Catch、Finallyブロックを使用してterminationエラーを処理する方法):

try {
    Set-CASMailbox -Identity:blocks.5 -OWAMailboxPolicy "DoNotExists"  -ErrorAction Stop
                ### set action preference to force terminating error:  ↑↑↑↑↑↑↑↑↑↑↑↑ ↑↑↑↑
    Write-Host "The Set-CASMailbox command completed correctly"
}  
catch {
    Write-Host "The Set-CASMailbox command failed: $($error[0])"  -ForegroundColor Red
}

いずれにせよ、有害な書き込みと見なされる書き込みホストを読み取ります。

1
JosefZ