🤝

共有メールボックスをPowerShellで作成

2023/04/26に公開約2,500字

はじめに

Excange Onlineで共有メールボックスの作成をGUIで行うとしんどいので、PowerShellで行う方法をまとめました。ネット上にある情報がPowerShellをパイプライン書いていて個人的に分かりづらいので、この記事では見やすく書いています。

目次

環境

  • PowerShell version: 5.1.19041.2673
  • Exchange PowerShell

共有メールボックス作成

  • 共有メールボックス作成
  • メンバー割り当て
  • 所有者として送信できるようにする
  • 送信済みフォルダにメールをコピーする
  • 確認

CSV(共有メールボックス作成用)

Alias DisplayName PrimarySmtpAddress
aaaa 共有メールボックス01 aaaa@example.com
bbbb 共有メールボックス02 bbbb@example.com
cccc 共有メールボックス03 cccc@example.com

作成用PowerShell

# 接続(グローバル管理者 or Exchange管理者)
Connect-ExchangeOnline

# CSV読み込み(パスは書き換えてください)
$CSVs = Import-Csv -Path "<CSVファイルへのパス>"-Encoding UTF8

# 共有メールボックス作成
foreach($CSV in $CSVs)
{
$DisplayName = $CSV.DisplayName
$PrimarySmtpAddress = $CSV.PrimarySmtpAddress
$Alias = $CSV.Alias

New-Mailbox `
-Shared `
-Name $DisplayName `
-DisplayName $DisplayName `
-PrimarySmtpAddress $PrimarySmtpAddress `
-Alias $Alias
}

CSV(メンバー追加用)

PrimarySmtpAddress Member
aaaa@example.com user01@example.com
aaaa@example.com user02@example.com
aaaa@example.com user03@example.com

メンバー追加用PowerShell

  • 「共有メールボックス01」にuser1-3を割り当てます
# 接続(グローバル管理者 or Exchange管理者)
Connect-ExchangeOnline

# CSV読み込み(パスは書き換えてください)
$CSVs = Import-Csv -Path "<CSVファイルへのパス>"-Encoding UTF8

# ユーザー割り当て
foreach($CSV in $CSVs)
{
$PrimarySmtpAddress = $CSV.PrimarySmtpAddress
$Member = $CSV.Member

Add-MailboxPermission `
-Identity $DisplayName `
-User $Member `
-AccessRights FullAccess `
-InheritanceType All 
}

# メンバーを共有メールボックスの所有者として送信できるようにする
foreach($CSV in $CSVs)
{
$PrimarySmtpAddress = $CSV.PrimarySmtpAddress 
$Member = $CSV.Member

Add-RecipientPermission `
-Identity $PrimarySmtpAddress `
-Trustee $Member `
-AccessRights SendAs `
-Confirm:$false
}

確認

foreach($CSV in $CSVs)
{
$PrimarySmtpAddress = $CSV.PrimarySmtpAddress 
$Member = $CSV.Member

Get-MailboxPermission -Identity $PrimarySmtpAddress `
| Out-File -FilePath "<ファイルのパス+ファイル名>" -Append

Get-RecipientPermission `
-Identity $PrimarySmtpAddress `
-Trustee $Member `
| Out-File -FilePath "<ファイルのパス+ファイル名>" -Append
}

# 切断
Disconnect-ExchangeOnline

まとめ、所感

  • GUIで手を動かす単純作業の時間は減らせる
  • CSVの作り込みが必要
  • 確認作業が楽
  • 共有メールボックスへのメンバー追加は「メールが有効なセキュリティグループ」を使用したほうが楽かも(要検証)

Discussion

ログインするとコメントできます