Exchange Online 配布リストの詳細情報をCSVファイルでエクスポートする方法

複数の配布リストの詳細情報をエクスポートしたいと思った際、Microsoft 365管理センターやExchange管理センターからはメンバーや所有者の情報を一括で取得することができませんでした。

そこで、Windows Powershellを使って、メンバーや所有者の情報を含む詳細情報をCSVファイルで取得できないか、検証を行いました。

配布リストとは

「実体のないメールアドレス」に複数の受信者(メールアドレス)を登録することで、登録されている受信者へメールを送信することができる機能です。

メールの宛先に配布リストのアドレスを入れて送信すると、登録されているメンバー全員のアドレスにコピーが送信されて、それぞれの受信トレイへ届きます。

Exchange管理センターからの配布リスト情報取得方法

1. 管理者アカウントでExchange管理センター(https://admin.Exchange.Microsoft.com/)にアクセスします。

2. 左ペインから[グループ]を選択し[配布リスト]をクリックします。

3.  [エクスポート]をクリックすると、情報をCSVファイルでエクスポートすることが可能です。

※以下のポップアップ画面が表示された場合は[続ける]をクリックします。

エクスポートできる情報は以下の通りです。冒頭に記載した通り所有者やメンバーは含まれていませんでした。

  • グループID
  • グループ名
  • グループのエイリアス
  • グループのプライマリメール
  • 説明
  • グループのメールエイリアス
  • オンプレミスから同期
  • グループの種類
  • ダイナミックメンバーシップ
  • IsYammerGroup
  • IsPLCGroup
  • グループのプライバシー
  • グループのドメイン
  • Teamsを利用している
  • 作成日
  • ロールに割り当て可能
  • CreatedByAppId
  • SecurityEnabled

Microsoft 365管理センターからの配布リスト情報取得方法

1. 管理者アカウントでMicrosoft 365管理センター(https://admin.Microsoft.com/)にアクセスします。

2. 左ペインから[アクティブなチームとグループ]を選択し[配布リスト]をクリックします。

3. [エクスポート]をクリックすると情報をCSVファイルでエクスポートすることが可能です。

※以下のポップアップ画面が表示された場合は[続ける]をクリックします。

エクスポートできる情報は、Exchange管理センターからのエクスポート情報と同様でした。所有者やメンバーも含まれていませんでした。

  • グループID
  • グループ名
  • グループのエイリアス
  • グループのプライマリメール
  • 説明
  • グループのメールエイリアス
  • オンプレミスから同期
  • グループの種類
  • ダイナミックメンバーシップ
  • IsYammerGroup
  • IsPLCGroup
  • グループのプライバシー
  • グループのドメイン
  • Teamsを利用している
  • 作成日
  • ロールに割り当て可能
  • CreatedByAppId
  • SecurityEnabled

Windows Powershellからの配布リスト情報取得方法

事前準備

Windows PowerShell にて 以下のコマンドを実行しExchange Online へ管理者アカウントで接続します。

参考:Exchange Online PowerShell に接続する | Microsoft Learn

Connect-ExchangeOnline

Windows PowerShellでのコマンド実行

Microsoft 365管理センターやExchange管理センターからのエクスポートとは異なり、Windows PowerShellでのコマンド実行で情報を取得する場合は、任意で様々な情報を組み合わせて取得する事が可能です。

今回は、所有者やメンバを含めた以下の情報を取得する際のコマンドを、例として記載します。

  • DistributionGroupName : 配布リスト名
  • DistributionGroupMailAddress : 配布リストのメールアドレス
  • Managedby : 所有者
  • RequireSenderAuthenticationEnabled : 配信管理 (組織内の送信者のみ/組織内および組織外の送信者)
  • DisplayName : メンバーの表示名
  • PrimarySmtpAddress : メンバーのプライマリ SMTP アドレス

1 .Temp 変数へ情報を格納します。

$Temp=foreach ($i in Get-DistributionGroup -ResultSize Unlimited -RecipientTypeDetails MailUniversalDistributionGroup)
{Get-DistributionGroupMember -Identity $i.PrimarySmtpAddress -ResultSize Unlimited | select @{n="DistributionGroupName";e={$i.DisplayName}},
@{n="DistributionGroupMailAddress";e={$i.PrimarySmtpAddress}},@{n="Managedby";e={$i.Managedby}},
@{n="RequireSenderAuthenticationEnabled";e={$i.RequireSenderAuthenticationEnabled}},DisplayName,PrimarySmtpAddress}

※出力するデータが多い場合、ResultSizeを指定していても警告”ResultSize パラメーターの値を増やしてください。”と表示される場合がありますが、出力結果には影響ありません。

※メンバーが1人も登録されていない配布リストに関してはCSVファイルに出力されません。

2. Temp 変数に格納した情報を CSVファイルとしてエクスポートします。

$Temp | Export-Csv -NoTypeInformation -Encoding UTF8 -Path "C:\temp\DistributionGroupMember.csv"

※保存先・ファイル名は任意の保存先/ファイル名を指定します。

3. 指定した保存先にファイルが作成できていることを確認します。

おわりに

今回は、配布リストの情報取得方法として、Windows PowerShellを使う方法をご紹介しました。

例として配布リストのいくつかの情報をWindows PowerShellから出力しましたが、必要な情報に応じてコマンドを編集していただければと思います。

また、今回は直接コマンドを実行しましたが、繰り返し利用する場合はスクリプトとして保存した方が使いやすいケースもあるので、ぜひそちらも試してみてください。

[配布リストに関連するパラメーターの参考情報]
URL : https://learn.microsoft.com/ja-jp/powershell/module/exchange/set-distributiongroup

執筆担当者プロフィール
大黒 瞳

大黒 瞳

クラウドソリューション事業本部所属。主にMicrosoft 365の技術を扱っています。

担当記事一覧