共有メールボックスの作成については、New-Mailbox のコマンドレットで可能ですが、メンバーとして追加することができないため、別途、Add-MailboxPermission でフルアクセス許可、Add-RecipientPermission でメールボックス所有者として送信する権限の付与が必要です。
また、一括で複数の共有メールボックスを作成する場合、CSVファイルに設定に必要な情報をまとめておき、コマンドレットでCSVファイルをインポートすることで可能です。
以下に手順をご紹介します。
1. PowerShell で共有メールボックスを作成する
※ 事前に PowerShell で Exchange Online へ接続をお願いします。
1-1. 個別に共有メールボックスを作成する
[構文]
New-Mailbox -Name <共有メールボックス名> -DisplayName "<表示名>" -Alias <メールアドレスの @ 以前の部分> -PrimarySmtpAddress <メールアドレス> -Shared
[実行例]
New-Mailbox -Name Shared01 -DisplayName "共有メールボックス01" -Alias Shared01 -PrimarySmtpAddress Shared01@contoso.com -Shared
1-2. CSV ファイルを利用して一括で作成する
◇ 1. CSV ファイルを作成します。
[基本]
1 行目 : Name,DisplayName,Alias,PrimarySmtpAddress
2 行目 : <共有メールボックス名>,<表示名>,<メールアドレスの @ より前の部分>,<メールアドレス>
[作成例]
Name,DisplayName,Alias,PrimarySmtpAddress
Shared01,共有メールボックス01,Shared01,Shared01@contoso.com
Shared02,共有メールボックス02,Shared02,Shared02@contoso.com
Shared03,共有メールボックス03,Shared03,Shared03@contoso.com
※ 1 行目はタイトル行となります必須の項目となります。
※ 保存時に拡張子を [.csv] とします。
※ CSV ファイルの文字コードは、2 バイト文字が文字化けすることを防ぐため、UTF-8 を指定します。
◇ 2. 作成した csv ファイルを利用し共有メールボックスを一括で作成するためのコマンド
[構文]
Import-CSV "<保存先パス\ファイル名.csv>" | Foreach-object {New-Mailbox -Name $_.Name -DisplayName $_.DisplayName -Alias $_.Alias -PrimarySmtpAddress $_.PrimarySmtpAddress -Shared}
[実行例]
Import-Csv "C:\Temp\Sharedlist.csv" | Foreach-object {New-Mailbox -Name $_.Name -DisplayName $_.DisplayName -Alias $_.Alias -PrimarySmtpAddress $_.PrimarySmtpAddress -Shared}
※ 実行例は C ドライブ直下の Temp フォルダー内に保存した Sharedlist.csv ファイルを指定しております。
2. 共有メールボックスへのアクセス権付与手順
下記コマンドにて、対象ユーザーへフル アクセス権限と所有者送信権限を付与します。
2-1. 個別に共有メールボックスにフルアクセス許可とメールボックス所有者として送信する権限を付与する
◇ フルアクセス許可
<構文>
Add-MailboxPermission -Identity <共有メールボックスのアドレス> -User <権限を付与するユーザーのアドレス> -AccessRights FullAccess
<実行例>
Add-MailboxPermission -Identity Shared@contoso.com -User user@contoso.com -AccessRights FullAccess
◇ メールボックス所有者として送信する
<構文>
Add-RecipientPermission -Identity <共有メールボックスのアドレス> -Trustee <権限を付与するユーザーのアドレス> -AccessRights SendAs
<実行例>
Add-RecipientPermission -Identity Shared@contoso.com -Trustee user@contoso.com -AccessRights SendAs
2-2. 一括で共有メールボックスにフルアクセス許可とメールボックス所有者として送信する権限を付与する
◇ 1. 権限付与を行う対象ユーザーの CSV ファイルを作成する
[基本]
1 行目 : SharedMailbox,User
2 行目 : <設定を行う共有メールボックスのメールアドレス>,<権限を付与するユーザーのメールアドレス>
[作成例]
SharedMailbox,User
Shared01@contoso.com,User01@contoso.com
Shared01@contoso.com,User02@contoso.com
Shared02@contoso.com,User03@contoso.com
◇ 2. 作成した CSV ファイルを用い、共有メールボックスの権限付与を行う
[構文]
Import-CSV "<保存先パス\ファイル名.csv>" | Foreach-object { Add-MailboxPermission -Identity $_.SharedMailbox -User $_.User -AccessRights FullAccess ;Add-RecipientPermission -Identity $_.SharedMailbox -Trustee $_.User -AccessRights SendAs -Confirm: $False}
[実行例]
Import-CSV "C:\Temp\Accesslist.csv" | Foreach-object { Add-MailboxPermission -Identity $_.SharedMailbox -User $_.User -AccessRights FullAccess ;Add-RecipientPermission -Identity $_.SharedMailbox -Trustee $_.User -AccessRights SendAs -Confirm: $False}
※実行例は Cドライブ直下の Temp フォルダー内に保存した Accesslist.csv ファイルを指定しております。
上記コマンドレットを実行すると共有メールボックスのフルアクセス権、送信権限が以下のように設定されます。
共有メールボックス 対象ユーザー アクセス権 送信権限
Shared01@contoso.com User01@contoso.com FullAccess SendAs
Shared01@contoso.com User02@contoso.com FullAccess SendAs
Shared02@contoso.com User03@contoso.com FullAccess SendAs
FullAccess : フル アクセス権限
SendAs : 送信権限
3. 共有メールボックスへのアクセス権確認手順
3-1. テナント内に作成されている共有メールボックスを確認します
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Select DisplayName,PrimarySmtpAddress | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<保存先パス\ファイル名.csv>"
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Select DisplayName,PrimarySmtpAddress | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\SharedMailboxlist.csv"
3-2. 全ての共有メールボックスのフルアクセス権の設定を確認します
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Get-MailboxPermission -ResultSize Unlimited | Select Identity,User,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<保存先パス\ファイル名.csv>"
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Get-MailboxPermission -ResultSize Unlimited | Select Identity,User,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\Accesslist.csv"
[実行結果]
Identity : 共有メールボックス名
User : 権限が付与されているユーザー
AccessRights : 権限 (フルアクセス権限の場合は [FullAccess] となります)
3-3. 全ての共有メールボックスの所有者送信権限の設定を確認します
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Sharedmailbox | Get-RecipientPermission | Where {$_.Trustee -ne "NT AUTHORITY\SELF"} | Select Identity,Trustee,AccessRights | Export-Csv -Encoding Utf8 -NoTypeInformation -Path "<保存先のパス\ファイル名.csv>"
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Sharedmailbox | Get-RecipientPermission | Where {$_.Trustee -ne "NT AUTHORITY\SELF"} | Select Identity,Trustee,AccessRights | Export-Csv -Encoding Utf8 -NoTypeInformation -Path "C:\temp\SendAslist.csv"
<実行結果>
Identity : 共有メールボックス名
Trustee : 権限が付与されているユーザー
AccessRights : 権限 (メールボックス所有者としての送信の場合は [SendAs] となります)