社畜の所業

社畜の所業

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

【Office365参考書】多くの共有メールボックスを一括で作成する方法とは?Powershellを利用する。

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

共有メールボックスの一括作成につきましては、Powershell のコマンドレットにて、CSV ファイルをインポートし実施することで可能です。 

 

なお、メンバーの一括登録 (フルアクセス権限/所有者送信権限の付与) については、別途、PowerShell コマンドを利用して設定が必要です。 

 

以下にコマンドレットをご紹介します。

  

事前に PowerShell で Exchange Online へ接続してください。 

  

 

it-bibouroku.hateblo.jp

 

 

  

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 での保存の手順 

  1. CSV ファイルを右クリックし、[プログラムから開く] - [メモ帳] の順にクリックします
  2. 開いたメモ帳で [ファイル] - [名前を付けて保存] の順にクリックします。
  3. ファイルの種類で「すべてのファイル」を選択します。
  4. 文字コードで「UTF-8」を選択します。
  5. [保存] をクリックします。

  

◆ 作成した 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. 作成した共有メールボックスを確認する 

作成した共有メールボックスの一覧を、CSV ファイルに出力して確認するコマンドを以下にご案内します。 

  

[構文] 

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox |Select Identity,DisplayName,PrimarySmtpAddress | Export-CSV -NoTypeInformation -Encoding UTF8 -Path "<保存先パス\ファイル名.csv>" 

  

[実行例] 

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox |Select Identity,DisplayName,PrimarySmtpAddress | Export-CSV -NoTypeInformation -Encoding UTF8 -Path "C:\temp\Sharedlist001.csv

  

※ 実行例は C ドライブの Temp フォルダー {Sharedlist001} に情報が出力されます。適宜ファイル名の変更をお願い申し上げます。 

  

[実行結果] 

Identity : 共有メールボックス名 

DisplayName : 表示名 

PrimarySmtpAddress : プライマリ メール アドレス 

  

  

 3. 共有メールボックスのメンバーの一括登録をする 

共有メールボックスのフルアクセス権と所有者送信権限の一括付与の方法を以下にご案内します。 

  

◆ 権限付与を行う対象ユーザーの 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 

  

◆ 作成した 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\Accesslist001.csv" | Foreach-object { Add-MailboxPermission -Identity $_.SharedMailbox -User $_.User -AccessRights FullAccess ;Add-RecipientPermission -Identity $_.SharedMailbox -Trustee $_.User -AccessRights SendAs -Confirm: $False} 

  

※実行例は Cドライブ直下の Temp フォルダー内に保存した Accesslist001.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     : 送信権限 

  

  

また、共有メールボックスの権限設定について確認を行う際、以下のコマンドにてご確認いただくことが可能です。 

  

 

4. 全共有メールボックスのアクセス権設定の抽出 

 

◆ フル アクセス権限の確認 

[構文] 

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Get-MailboxPermission | Where {($_.User -Notlike "*S-1-5-21*") -And ($_.User -Notlike "*\*")} | Select Identity,User,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<保存先のパス\ファイル名.csv>" 

  

[実行例] 

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Get-MailboxPermission | Where {($_.User -Notlike "*S-1-5-21*") -And ($_.User -Notlike "*\*")} | Select Identity,User,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\temp\SharedFullAccesslist001.csv

  

上記コマンドレットを実行することで、C ドライブ配下の Temp フォルダーに "SharedFullAccesslist001.csv" というファイル名で、各共有メールボックスのフルアクセス権一覧が出力されます。 

  

[実行結果] 

Identity       : 共有メールボックス 

User          : 権限が付与されているユーザーのプライマリ メール アドレス(メールが有効なセキュリティグループの場合は表示名) 

AccessRights  : 権限 (フルアクセス権限の場合は [FullAccess] となります) 

  

◆ 所有者として送信権限の確認 

[構文] 

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Get-RecipientPermission | Where {($_.Trustee -Notlike "*S-1-5-21*") -AND ($_.Trustee -ne "NT AUTHORITY\SELF")} | Select Identity,Trustee,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<保存先のパス\ファイル名.csv>" 

  

[実行例] 

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Get-RecipientPermission | Where {($_.Trustee -Notlike "*S-1-5-21*") -AND ($_.Trustee -ne "NT AUTHORITY\SELF")} | Select Identity,Trustee,AccessRights | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\temp\SharedSendAslist001.csv

  

上記コマンドレットを実行することで、C ドライブ配下の Temp フォルダーに "SharedSendAslist001.csv" というファイル名で、各共有メールボックスの所有者として送信権一覧が出力されます。 

  

[実行結果] 

Identity       : 共有メールボックス 

Trustee       : 権限が付与されているユーザーのメール アドレス(メールが有効なセキュリティグループの場合は表示名) 

AccessRights  : 権限 (所有者送信権限 : SendAs)