PowerShell で Microsoft 365 の共有メールボックスを一括登録する
「PowerShell で Microsoft 365 の〇〇を一括登録する」シリーズ第三弾は、共有メールボックスを一括登録します。
共有メールボックスは、代表アドレスなど複数人でメールボックスを管理する場合に使います。共有メールボックス内のメールの未読・既読も含め状態が共有されるので、慣れないと「あのメールはどこに行った?」となりがちなのが悩ましいところですが。
CSV の準備
共有メールボックスの場合は、以下のような CSV を作成します。文字コードは UTF-8、改行コードは CRLF で。後でパスを指定することになるので、わかりやすい場所に保存しておきます(C:\temp\shared_mailbox.csv
など)。
Name,Alias,PrimarySmtpAddress
代表,info,info@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
その後、以下のコマンドを実行して一括登録します。
Import-Csv -Path C:\temp\shared_mailbox.csv -Encoding UTF8 | foreach {New-Mailbox -Name $_.Name -Alias $_.Alias -PrimarySmtpAddress $_.PrimarySmtpAddress -Shared} | Export-Csv -Path C:\temp\shared_mailbox_result.csv
実行結果は C:\temp\shared_mailbox_result.csv
に出力されるので確認しておきましょう。
メールボックスの言語設定&送信済みメールを [送信済み] フォルダに保存する設定
メールボックスの言語設定の説明は省略するとして、共有メールボックスの所有者の1人が送信したメールは、デフォルトの設定ではその所有者の [送信済み] フォルダに保存されます。これだと、メール送信時に Bcc に共有メールボックスのメールアドレスを入れておくなどしなければ、他の所有者はどんなメールが送信されたか把握することができません。問い合わせ対応を効率化することが共有メールボックスを利用するメリットなのに、対応状況が共有できなければ効果も半減です。そこで、以下のコマンドを実行して、共有メールボックスの [送信済み] フォルダに送信済みメールを保存するように設定します。
# メールボックスの言語設定
Get-Mailbox -Filter "RecipientTypeDetails -eq 'SharedMailbox'" | foreach {Set-MailboxRegionalConfiguration -Identity $_.Alias -DateFormat "yyyy/MM/dd" -TimeFormat "H:mm" -TimeZone "Tokyo Standard Time" -LocalizeDefaultFolderName:$True -Language "ja-JP"}
# 送信済みメールを [送信済み] フォルダに保存する
Get-Mailbox -Filter "RecipientTypeDetails -eq 'SharedMailbox'" | foreach {Set-Mailbox -Identity $_.Alias -MessageCopyForSentAsEnabled $True}
共有メールボックスの登録と基本的な設定は上記で完了です。共有メールボックスごとの所有者の設定は、Microsoft 365 の管理画面から行ったほうがわかりやすいので、そちらに任せることにします。
ディスカッション
コメント一覧
まだ、コメントがありません