Exchange Online PowerShellでユーザーメールボックスを一覧表示する方法を徹底解説!

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管理画面では難しい柔軟な操作が可能になります。

特に以下のような場面で大きな威力を発揮します。

  • 毎月のメールボックス監査報告書作成
  • ライセンス適用漏れのチェック
  • 共有・リソースメールボックスの洗い出し

初めての方は少しハードルを感じるかもしれませんが、一度コマンドの基本を理解すれば業務効率は確実にアップします。ぜひ、この記事を参考に日々の業務に役立ててください。

タイトルとURLをコピーしました