Microsoft 365(旧Office 365)の管理者にとって、Exchange Onlineのユーザーメールボックスを効率的に管理することは重要です。特に、PowerShellを使えば、Web管理画面よりも詳細な情報を一括で取得したり、複数ユーザーの操作を自動化したりすることができます。この記事では、Exchange Online PowerShellを使ってユーザーメールボックスを一覧表示する方法について、初心者にもわかりやすく手順を解説します。Microsoft 365管理に携わるすべての方に役立つ内容ですので、ぜひ参考にしてください。
Exchange Online PowerShellとは?
Exchange Online PowerShellは、Microsoft 365のExchange Online環境に対してコマンドラインから操作を行える強力なツールです。GUI(グラフィカルユーザーインターフェース)では難しい大量データの処理やスクリプトによる自動化が可能で、IT管理者にとっては欠かせないツールとなっています。
PowerShellを使えば、ユーザーのメールボックス情報の取得、変更、管理者権限の付与など、多くの操作を一括で効率的に実行できます。今回は、その中でも最も基本的な「メールボックスの一覧表示」について、具体的な手順と活用法を紹介します。
Exchange Online PowerShellに接続する方法
まずは、PowerShellからExchange Onlineに接続する必要があります。以下の手順に従ってください。
必要条件
- Microsoft 365管理者アカウント
- PowerShell 5.1以上(Windows PowerShell)
- Exchange Online PowerShell V3モジュール(EXO V3モジュール)
ステップ1:PowerShellを管理者として実行
Windowsスタートメニューから「PowerShell」を右クリックし、「管理者として実行」を選びます。
ステップ2:Exchange Online PowerShellモジュールのインストール
初回のみ、以下のコマンドでモジュールをインストールします。
Install-Module -Name ExchangeOnlineManagement
モジュールの更新が必要な場合は以下を実行します。
Update-Module -Name ExchangeOnlineManagement
ステップ3:Exchange Onlineに接続
以下のコマンドで接続します。
Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com
※「admin@yourdomain.com」はご自身の管理者アカウントに置き換えてください。
認証が成功すると、PowerShell経由でExchange Onlineに対する操作が可能になります。
メールボックスを一覧表示するコマンド
Exchange Online PowerShellに接続したら、次はユーザーメールボックスの一覧を表示してみましょう。
基本コマンド
Get-Mailbox
このコマンドだけで、組織内のすべてのメールボックス情報が取得できます。ただし、表示される情報は標準では限られているため、必要に応じて詳細情報を付加して表示できます。
表示内容をカスタマイズする方法
名前と主な属性を表示する例
Get-Mailbox | Select-Object DisplayName,PrimarySmtpAddress,RecipientTypeDetails
DisplayName
: 表示名PrimarySmtpAddress
: 主なメールアドレスRecipientTypeDetails
: ユーザーの種類(通常のユーザー、共有メールボックスなど)
すべてのユーザーをCSV形式で出力
管理や報告のためにCSV形式で出力することも可能です。
Get-Mailbox | Select-Object DisplayName,PrimarySmtpAddress,RecipientTypeDetails | Export-Csv -Path "C:\Mailboxes.csv" -NoTypeInformation -Encoding UTF8
このコマンドを使えば、取得した情報をエクセルなどで開いて確認・加工が可能です。
条件を指定してフィルタリングする方法
たとえば、共有メールボックスだけを一覧表示したい場合は以下のようにします。
Get-Mailbox -RecipientTypeDetails SharedMailbox
特定のドメインのメールボックスだけを取得したい場合:
Get-Mailbox | Where-Object {$_.PrimarySmtpAddress -like "*@example.com"}
このように、Where-Object
を使って柔軟にフィルタリングが可能です。
よく使うオプションとパラメータ
パラメータ | 内容 |
---|---|
-ResultSize Unlimited | すべての結果を取得する(1000件以上ある場合) |
-RecipientTypeDetails | メールボックスの種類を絞り込み(UserMailbox、SharedMailboxなど) |
-OrganizationalUnit | 指定したOU(組織単位)のユーザーのみ取得 |
例:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox
トラブル時の確認ポイント
- 接続エラー:Exchange Onlineモジュールが古い、または未インストールの場合が多いです。
Update-Module ExchangeOnlineManagement
で解決。 - 表示される件数が少ない:デフォルトで最大1000件までしか表示されないため、
-ResultSize Unlimited
を忘れずに。 - CSV出力の文字化け:日本語が含まれる場合、
-Encoding UTF8
を指定することで回避可能です。
まとめ:PowerShellでメールボックス管理を効率化しよう
Exchange Online PowerShellを活用すれば、ユーザーのメールボックスを一括で確認・管理でき、Web管理画面では難しい柔軟な操作が可能になります。
特に以下のような場面で大きな威力を発揮します。
- 毎月のメールボックス監査報告書作成
- ライセンス適用漏れのチェック
- 共有・リソースメールボックスの洗い出し
初めての方は少しハードルを感じるかもしれませんが、一度コマンドの基本を理解すれば業務効率は確実にアップします。ぜひ、この記事を参考に日々の業務に役立ててください。