DAG 構成の特定のメールボックス サーバーでホストされているメールボックスを正確に取得する

DAG 構成の場合、Get-Mailbox コマンドの Server オプションでは正確な情報が取得できない場合があります。Get-MailboxDatabaseCopyStatus コマンドを組み合わせることで、正確な情報が取得できます。

まず、Get-Mailbox コマンドで Server オプションを使用すると、ユーザー オブジェクトの msExchHomeServerName 属性を基に一致するメールボックスが返されます。Get-Mailbox コマンドの結果に含まれる ServerName も msExchHomeServerName 属性の値です。しかし DAG 環境では、例えばフェールオーバーした時などに msExchHomeServerName 属性が更新されていないことがあります。

そのために Get-Mailbox コマンドの Server オプションでは正確な情報ではない可能性がありますので、Database オプションを使用します。データベースがどこでマウントされているかは、Get-MailboxDatabaseCopyStatus コマンドで取得します。以下のようになります。

# MBX01 というメールボックス サーバーでホストされているメールボックスを取得する
Get-MailboxDatabaseCopyStatus -Server MBX01 | ?{$_.Status -eq "Mounted"} | %{Get-Mailbox -Database $_.DatabaseName}

Get-MailboxDatabaseCopyStatus コマンドで特定のサーバーにあるデータベース コピーを取得し、そのうちマウントしているものを抽出して、Get-Mailbox コマンドに渡しています。サーバーごとのメールボックス数を取得するときなどに活用できると思います。