社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Office365参考書】全グループのメンバーを一括で確認する方法について解説します。

f:id:it-bibouroku:20200305151118j:plain

今回は、全グループに登録されているメンバーを一括で確認する方法として、Powershell のコマンドレットをご紹介していきたいと思います。 

  

なお、配布グループとメールが有効なセキュリティグループは、Get-DistributionGroupMember、Office365 グループは、Get-UnifiedGroupLinks、動的配布グループは、Get-DynamicDistributionGroup とコマンドが別のものなので、グループごとにコマンドを実行する必要があります。 

  

なお、動的配布グループについては、すべてのグループを一括ではできないため、グループごとに実行しないといけません。 

  

以下にご紹介していきます。 

  

 

■ すべての配布グループとメールが有効なセキュリティグループのメンバーを確認する 

1.

$temp=foreach($i in Get-DistributionGroup){Get-DistributionGroupMember -Identity $i.PrimarySmtpAddress | Select @{n="GroupName";e={$i.DisplayName}},@{n="GroupType";e={$i.recipienttype}},DisplayName,PrimarySmtpAddress} 

  

2.

$temp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path C:\temp\MLMember.Csv 

※本例では CSV ファイルを C: ドライブ配下の Temp フォルダに MLMember.csv というファイル名で保存します。 

  

<出力結果> 

GroupName:グループ名 

GroupType:グループの種類 

・MailUniversalDistributionGroup : 配布グループ 

・MailUniversalSecurityGroup : メールが有効なセキュリティグループ 

DisplayName:メンバーの表示名 

PrimarySmtpAddress:メンバーのアドレス 

  

  

■ すべての Office365 グループのメンバーを確認する 

1.

$Temp=foreach ($i in Get-UnifiedGroup -ResultSize Unlimited | where {$_.Grouptype -Like "Universal"}) {Get-UnifiedGroupLinks -Identity $i.PrimarySmtpAddress -ResultSize Unlimited -Linktype members | select @{n="UnifiedGroupName";e={$i.DisplayName}},@{n="UnifiedGroupMailAddress";e={$i.PrimarySmtpAddress}},DisplayName,PrimarySmtpAddress} 

  

2.

$temp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path C:\temp\O365Member.Csv 

※本例では CSV ファイルを C: ドライブ配下の Temp フォルダに O365Member.csv というファイル名で保存します。 

  

<出力結果> 

UnifiedGroupName : グループ名 

UnifiedGroupMailAddress : グループのアドレス 

DisplayName : メンバーのユーザー名 

PrimarySmtpAddress : メンバーのアドレス 

  

  

■動的配布グループのメンバーを出力する 

<構文> 

1.

$DDG = Get-DynamicDistributionGroup -Identity <動的配布グループのメールアドレス> 

  

2.

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter | Export-Csv -NoTypeInformation -Encoding UTF8 -Path <ファイルパス\ファイル名>.csv 

  

<実行例> 

$DDG = Get-DynamicDistributionGroup -Identity test@contoso.com 

  

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\temp\Dynamic.csv 

※本例では CSV ファイルを C: ドライブ配下の Temp フォルダに Dynamic.csv というファイル名で保存します。 

  

  

また、補足ですが、指定したユーザーがどのグループに所属しているのか確認することもできますのでお試しください。 

  

  

■ 指定したユーザーがメンバーとして登録されているグループを確認する 

1.

$Temp = foreach($i in get-mailbox -Identity <該当のユーザー名>){ $work="" ; $work = "members -like" + '"' +$i.DistinguishedName + '"'; Get-DistributionGroup -Filter $work |select @{n="username"; e={$i.DisplayName}},DisplayName,primarysmtpaddress,recipienttype } 

  

2.

$temp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path C:\temp\UserMember.Csv 

※本例では CSV ファイルを C: ドライブ配下の Temp フォルダに UserMember.csv というファイル名で保存します。 

  

<出力結果> 

username : 該当のユーザー名 

DisplayName : グループ名 

PrimarySmtpAddress : グループのアドレス 

RecipientType : グループの種類 

・MailUniversalDistributionGroup : 配布グループ 

・MailUniversalSecurityGroup : メールが有効なセキュリティグループ