PowerShell で Microsoft 365 の配布グループを一括登録する

2020年6月9日

「PowerShell で Microsoft 365 の〇〇を一括登録する」シリーズとりあえずの最終回は、配布グループを一括登録します。

配布グループはメーリングリストのようなもので、配布グループのメールアドレス宛に送信されたメールは、メンバー宛に配布されます。以前は「配布リスト(Distribution List)」と呼ばれていたと思うのですが、最近になって名前が変わったようです。

グループメンバーへのメール配信だけでなく、グループ共有の予定表やファイル置き場などグループでの共同作業を想定した Microsoft 365 グループと異なり、配布グループはメールの配信だけを行うシンプルなものになっています。

共有メールボックスの転送先に設定することもできるので、共有メールボックスの弱点である、メールの受信に気づきにくいところも、共有メールボックスの所有者を配布グループのメンバーに入れることで解消することができます。

CSV の準備

配布グループの場合には、以下のような CSV を作成します。文字コードは UTF-8、改行コードは CRLF で。後でパスを指定することになるので、わかりやすい場所に保存しておきます(C:\temp\distribution_group.csv など)。

Name,Alias,PrimarySmtpAddress
代表グループ,info_gr,info_gr@example.com

一括登録の実行

以下のコマンドを実行して Exchange に接続します。

$UserCredential = Get-Credential
# Microsoft 365 のログイン情報を入力

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

その後、以下のコマンドを実行して一括登録します。RequireSenderAuthenticationEnabled は、認証された (内部の) 送信者からのメッセージのみを受け付けるかどうかの設定で、$True に設定すると、内部の送信者からのメッセージのみ受け付けます。逆に $False に設定すると、外部から配布グループのメールアドレス宛にメールを送信できるようになります。

Import-Csv -Path C:\temp\distribution_group.csv -Encoding UTF8 | foreach {New-DistributionGroup -Name $_.Name -Alias $_.Alias -PrimarySmtpAddress $_.PrimarySmtpAddress -RequireSenderAuthenticationEnabled $True} | Export-Csv -Path C:\temp\distribution_group_result.csv

実行結果は C:\temp\distribution_group_result.csv に出力されるので確認しておきましょう。

この記事を書いた人

グッドネイバー

“ Webに悩むお客さまの「よき隣人」でありたい ” をモットーに、Web システム開発(主に Laravel)、Web マーケティング支援の仕事をしています。詳しい業務内容はこちら。お仕事のご依頼・ご相談はこちらからお気軽にどうぞ。