配布リストに所属するメンバーの一覧を一括取得しCSVファイルとして保存する。グループの棚卸しの際などに役立ててほしい。
検証環境について
動作確認した検証環境は以下の通り。
OS:Microsoft Windows 11 Enterprise
OSbuildバージョン:10.0.22621
PowerShellのバージョン:7.4.0
ExchangeOnlineのモジュール名とバージョン
ExchangeOnlineManagement 3.4.0サインインアカウントの権限はグローバル管理者。
使用するコマンド
Get-DistributionGroup
使用例
Get-DistributionGroup `
-ResultSize unlimited `
-RecipientTypeDetails MailUniversalDistributionGroup取得できる情報例
Name DisplayName GroupType PrimarySmtpAddress
---- ----------- --------- ------------------
***** ****** Universal *****@*****.onmicrosoft.com
***** ****** Universal *****@*****.onmicrosoft.comGet-DistributionGroupMember
使用例
Get-DistributionGroupMember -Identity ****@****.onmicrosoft.com -ResultSize unlimited取得できる情報例
Name RecipientType
---- -------------
User01 UserMailbox
User02 UserMailbox
User03 UserMailboxすべての配布リストのメンバーを取得しCSVファイルとして保存する
#コマンド実行日時を取得する
$yyyyMMddFFFFF = Get-Date -Format "yyyyMMdd_FFFFF"
#CSVの保存先 windowsOSの場合、デスクトップに保存する
$csvSavePath = "$env:USERPROFILE\Desktop"
#保存するCSVのファイル名
$csvFileName = "allDistributionGroupMemberList_${yyyyMMddFFFFF}.csv"
#ExchangeOnlineに接続する
Connect-ExchangeOnline
#結果を格納するための配列
$result = @()
#全ての配布リストのアドレスと表示名を取得する
$allDbGroup = Get-DistributionGroup `
-RecipientTypeDetails MailUniversalDistributionGroup `
-ResultSize unlimited | `
Select-Object DisplayName,PrimarySmtpAddress
foreach($dbGroup in $allDbGroup){
#特定の配布リストのメンバーを取得する
$allMember = Get-DistributionGroupMember `
-Identity $dbGroup.PrimarySmtpAddress `
-ResultSize unlimited | `
Select-Object DisplayName,PrimarySmtpAddress
#上記にて取得したメンバーの数だけ繰り返し
foreach($menber in $allMember){
$result +=[PSCustomObject]@{
#配布リストの表示名
DistributionGroupDisplayName = $dbGroup.DisplayName
#配布リストのプライマリSMTPアドレス
DistributionGroupPrimarySmtpAddress = $dbGroup.PrimarySmtpAddress
#配布リストに所属するメンバーの表示名
MenberDisplayName = $menber.DisplayName
#配布リストに所属するメンバーのプライマリSMTPアドレス
MenberPrimarySmtpAddress = $menber.PrimarySmtpAddress
}
}
}
#取得した結果をCSVとしてエクスポートする
$result | Export-Csv -Encoding UTF8 `
-NoTypeInformation `
-Path "${csvSavePath}\${csvFileName}"
#ExchangePowerShellからの接続を切断する
Disconnect-ExchangeOnline -Confirm:$false問い合わせフォーム
リンク切れのご報告や、記載内容に不備がありましたら、お手数をおかけしますが
以下お問い合わせフォームからご報告をお願い致します。
コマンドの仕様確認やエラー内容の確認、対処方法については、ご契約されているMicrosoftかCSPへお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。







