共有メールボックスは、ライセンスを利用せずにメールが利用できるメールボックスです。ユーザーメールボックスに対してアクセス権を付与することで共有メールボックスにアクセスしメールの閲覧やアドレスを利用して代理送信などもできます。
今回は、Powershellのコマンドレットを利用し共有メールボックスを作成する方法、また、CSVファイルを使って一括で複数の共有メールボックスを作成する方法についてご紹介していきたいと思います。
1. PowerShell で共有メールボックスを作成する
※ 事前に PowerShell で Exchange Online へ接続をお願いします。
個別に共有メールボックスを作成する場合
[構文]
New-Mailbox -Name <共有メールボックス名> -DisplayName "<表示名>" -Alias <メールアドレスの @ 以前の部分> -PrimarySmtpAddress <メールアドレス> -Shared
[実行例]
New-Mailbox -Name Shared01 -DisplayName "共有メールボックス01" -Alias Shared01 -PrimarySmtpAddress Shared01@contoso.com -Shared
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 を指定します。
UTF-8 での保存の手順
- CSV ファイルを右クリックし、[プログラムから開く] - [メモ帳] の順にクリックします
- 開いたメモ帳で [ファイル] - [名前を付けて保存] の順にクリックします。
- ファイルの種類で「すべてのファイル」を選択します。
- 文字コードで「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 ファイルを指定してます。
なお、共有メールボックスのメンバーを Powershell のコマンドレットで登録することはできませんが、メンバーとして追加した場合、フルアクセス許可とメールボックス所有者として送信する権限が付与される動作であり、それぞれの権限を Powershell のコマンドレットにて、付与することが可能です。
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. 一括で共有メールボックスにフルアクセス許可とメールボックス所有者として送信する権限を付与する
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 ファイルを指定しております。
また、共有メールボックスの作成や権限設定について確認を行う際、以下のコマンドレットにて可能です。
3. 共有メールボックスへのアクセス権確認手順
1. テナント内に作成されている共有メールボックスを確認します
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Select Name,DisplayName,Alias,PrimarySmtpAddress | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<保存先パス\ファイル名.csv>"
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails Shared | Select Name,DisplayName,Alias,PrimarySmtpAddress | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\SharedMailboxlist.csv"
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. 全ての共有メールボックスの所有者送信権限の設定を確認します
[構文]
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] となります)