社畜の所業

社畜の所業

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

※このサイトはPR記事を含みます。

【Microsoft365参考書】Powershellで共有メールボックスを作成するには?一括で複数の共有メールボックスを作成するには?

f:id:it-bibouroku:20210404095716p:plain

共有メールボックスの作成については、New-Mailbox のコマンドレットで可能ですが、メンバーとして追加することができないため、別途、Add-MailboxPermission でフルアクセス許可、Add-RecipientPermission でメールボックス所有者として送信する権限の付与が必要です。

 

また、一括で複数の共有メールボックスを作成する場合、CSVファイルに設定に必要な情報をまとめておき、コマンドレットでCSVファイルをインポートすることで可能です。 

  

以下に手順をご紹介します。 

  

 

1. PowerShell で共有メールボックスを作成する 

※ 事前に PowerShell で Exchange Online へ接続をお願いします。 

  

 

it-bibouroku.hateblo.jp

 

  

 

 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] となります)