大量にメールが有効なセキュリティグループを作成するわけではないので、Exchange 管理センターからポチポチやれば済むのですが、訳あって万が一管理センターに入れない場合に備えて、CLI で作成する方法も準備しておこうかと思います。もともと CLI が好きなのもありますが、GUI で人間が操作するとミスがおきやすいものなので、普段から再現性の高い CLI のコードを残しておきたくなります。そこで今回は、Mac の PowerShell で Exchange Online に接続してメールが有効なセキュリティグループを作成してみました。
Powershell のバージョン確認
% pwsh --version
PowerShell 7.3.5
# Powershell に入る
% pwsh
PowerShell での操作例
# Exchange Online PowerShell モジュールをインストール
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
# Exchange Online PowerShell モジュールをインポート
Import-Module ExchangeOnlineManagement
# インストールされているモジュールのバージョン情報を確認
Get-Module ExchangeOnlineManagement | Select-Object Version
Version
-------
3.3.0
# 例えば Azure CLI のユーザー情報からグローバル管理者を取得
$myUpn = $(az account show --query user.name --output tsv)
# テナントのプライマリドメインを設定
$primaryDomain = "example.com"
# グローバル管理者か Exchange 管理者で Exchange Online に接続
Connect-ExchangeOnline -UserPrincipalName $myUpn
# テナントを指定して Exchange Online に接続する場合
Connect-ExchangeOnline -UserPrincipalName $myUpn `
-DelegatedOrganization $primaryDomain
# メールが有効なセキュリティグループを作成
New-DistributionGroup `
-Name テストグループ1 `
-PrimarySmtpAddress test-group1@$primaryDomain `
-Type Security
# もう一つメールが有効なセキュリティグループを作成
New-DistributionGroup `
-Name テストグループ2 `
-PrimarySmtpAddress test-group2@$primaryDomain `
-Type Security
# 一つ目のセキュリティグループに自分自身をメンバーとして追加
Add-DistributionGroupMember `
-Identity test-group1@$primaryDomain `
-Member $myUpn
# 一つ目のセキュリティグループに二つ目ののセキュリティグループを追加
Add-DistributionGroupMember `
-Identity test-group1@$primaryDomain `
-Member test-group2@$primaryDomain
# 二つ目のセキュリティグループを削除
Remove-DistributionGroup `
-Identity test-group2@$primaryDomain
# 一つ目のセキュリティグループを削除
Remove-DistributionGroup `
-Identity test-group1@$primaryDomain
# Exchange Online から切断
Disconnect-ExchangeOnline
参考