😀

Mac の PowerShell で Exchange Online に接続してメールが有効なセキュリティグループを作成

に公開

大量にメールが有効なセキュリティグループを作成するわけではないので、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

参考

https://learn.microsoft.com/ja-jp/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#install-the-exchange-online-powershell-module

https://learn.microsoft.com/ja-jp/powershell/module/exchange/new-distributiongroup?view=exchange-ps

https://learn.microsoft.com/ja-jp/powershell/module/exchange/add-distributiongroupmember?view=exchange-ps

https://learn.microsoft.com/ja-jp/powershell/module/exchange/remove-distributiongroup?view=exchange-ps

Discussion