GraphPowerShellを使用してMicrosoft365グループを一括作成する方法について記載する。本スクリプトではコマンドNew-MgGroupの仕様上、ドメインを指定することができません。そのため現在指定されている既定のドメインが自動的に使用される。ドメインまで指定したい場合は、ドメインごとにCSVファイルを分けて、スクリプト実行前に都度既定のドメインを変更するか、ExchangeOnlinePowerShellを使用して作成すること。
検証環境について
動作確認した検証環境は以下の通り。
OS:Microsoft Windows 11 Enterprise
OSbuildバージョン:10.0.22621
PowerShellのバージョン:7.4.0
GraphPowershellのモジュール名とバージョン
Microsoft.Graph.Authentication:2.12.0サインインアカウントの権限はグローバル管理者。
#CSVの保存先 windowsOSの場合、デスクトップに保存する
$csvSavePath = "$env:USERPROFILE\Desktop"
#CSVのファイル名
$csvFileName = "microsoft365GroupList.csv"
#指定したいパラメータ
$365PrmCSV = [PSCustomObject]@{
DisplayName = $null
MailNickname = $null
Visibility = $null
}
#CSVファイルとして保存する
$365PrmCSV | Export-Csv -Path "${csvSavePath}\${csvFileName}" `
-Encoding utf8 -NoTypeInformationCSVファイルの入力例
| DisplayName | MailNickname | Visibility |
|---|---|---|
| PC入れ替えプロジェクト | pc-replacement | Private |
| 問い合わせ窓口 | qa | Public |
入力したCSVファイルを読み込み一括作成する
#CSVの保存先を指定する
$csvSavePath = "$env:USERPROFILE\Desktop"
#読み込むCSVファイル名を指定する
$csvFileName = "microsoft365GroupList.csv"
#編集したCSVファイルを読み込む
$csv365GroupList = Import-Csv -Path "${csvSavePath}\${csvFileName}"
#GraphPowerShellへ接続する
Connect-MgGraph -Scopes Group.ReadWrite.All -NoWelcome
foreach($365Group in $csv365GroupList){
#CSVの情報を取り出す
$365GroupParm = @{
DisplayName = $365Group.DisplayName
MailNickname = $365Group.MailNickname
Visibility = $365Group.Visibility
groupTypes = @("Unified")
mailEnabled = $true
securityEnabled = $true
HideFromOutlookClients = $true
}
New-MgGroup -BodyParameter $365GroupParm
}
Disconnect-MgGraph問い合わせフォーム
リンク切れのご報告や、記載内容に不備がありましたら、お手数をおかけしますが
以下お問い合わせフォームからご報告をお願い致します。
コマンドの仕様確認やエラー内容の確認、対処方法については、ご契約されているMicrosoftかCSPへお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。







