はじめに
Exchange Online PowerShell
Exchange Online PowerShell は、コマンド ラインから Microsoft 365 organizationのExchange Online部分を管理できる管理インターフェイスです (Exchange Online ProtectionおよびMicrosoft Defender for Office 365)。
https://learn.microsoft.com/ja-jp/powershell/exchange/exchange-online-powershell?view=exchange-ps
メールが有効なセキュリティグループを一括作成したいよ…
今回はメールが有効なセキュリティグループを一括作成するPowerhellのコードを紹介するから安心してね!
結論
Microsoft365メールが有効なセキュリティグループは、PowerShellスクリプト+CSVファイルを組み合わせることで短時間で一括作成できます。
理由は、Microsoft365管理センターでは複数作成の自動化機能がないためです。PowerShellを使えば、数百件でも短時間で作成でき、設定ミスも減らせます。
この記事では、実際のスクリプトを使いながら、手順をわかりやすく説明します。
完成コード
写真の設定は下記のコードをコピペすることで簡単に設定が可能です。
※このあとコードを解説して行きます。
完成版
##################################
# PowerShellでMicrosoft365管理
# メールが有効なセキュリティグループ括作成
# 作成日:
##################################
# CSVファイルのパスを指定
$Path = ".\test.csv"
# Exchange Online に接続
connect-exchangeOnline -UserPrincipalName admin@test.onmicrosoft.com -ShowProgress $true
# CSV読み込み
$Csv = Import-Csv $Path
foreach ($row in $Csv) {
$Name = $row.Name
$Alias = $row.Alias
$PrimarySmtpAddress = $row.PrimarySmtpAddress
try {
# セキュリティグループ作成
New-DistributionGroup `
-Name $Name `
-Alias $Alias `
-PrimarySmtpAddress $PrimarySmtpAddress `
-Type Security `
-ManagedBy "admin@test.onmicrosoft.com"
Write-Output "[$Name] セキュリティグループ作成が成功しました"
# 設定確認
Get-DistributionGroup -Identity $PrimarySmtpAddress | Format-List Name,Alias,PrimarySmtpAddress,ManagedBy
# 備考がある場合のみ表示
if ($row.Notes) {
Get-Group -Identity $PrimarySmtpAddress | Format-List Notes
}
}
catch {
Write-Output "[$Name] セキュリティグループ作成が失敗しました:$_"
}
}
必要な準備と環境
一括作成を行うために必要なものを確認します。
Microsoft365管理者アカウント
Exchange Online に接続するため、グローバル管理者またはExchange管理者権限が必要です。
PowerShell(推奨:PowerShell 7 以上)
Windows標準のPowerShellでも実行できますが、最新版の使用をおすすめします。
Exchange Online モジュール
下記でインストール可能です。
Install-Module ExchangeOnlineManagementCSVファイルを準備する
PowerShellスクリプトはCSVを読み取り、行ごとにセキュリティグループを作成します。
CSVの例(test.csv)
| Name | Alias | PrimarySmtpAddress | Notes |
|---|---|---|---|
| 営業部 | mail_sales | mail_sales@test.onmicrosoft.com | 営業関連 |
| 総務部 | mail_soumu | mail_soumu@test.onmicrosoft.com | 総務部門 |
| 戦略室 | mail_senryaku | mail_senryaku@test.onmicrosoft.com | 戦略室 |
Name:グループ名
Alias:エイリアス
PrimarySmtpAddress:メールアドレス
Notes:備考(任意)
スクリプトのポイント解説
1. Exchange Online へ接続
connect-exchangeOnlineセキュリティグループ管理はExchange側の機能なので、接続が必須です。
2. New-DistributionGroupコマンド
-Type Securityここで セキュリティグループを作成する設定 になっています。
メールが有効なセキュリティグループを作成する場合はこのコマンドを使用します。
3. エラーハンドリング
try { ... } catch { ... }大量作成時にどのグループが失敗したかを把握できます。
4. Notes の条件付き表示
CSVに Notes がある行のみ追加情報を確認できます。
よくあるエラーと対処法
エイリアスが重複している
Exchange側でエイリアスは重複不可。CSVを再チェックしてください。
メールアドレスの形式エラー
xxx@test.onmicrosoft.comの形になっているか確認。
権限不足
管理者権限がないと作成できません。