EntraIDユーザ/グループ一括作成削除方法
年度が切り替わったりする際に、大量のユーザが増えたり減ったりすると、Azure portalからの手動設定では、かなり大変な作業だと思います。効率的に実施する方法をご紹介します。
事前準備
1, PowerShell を開きます。
2, Connect-MgGraph -Scopes 'User.ReadWrite.All,Group.ReadWrite.All’ コマンドを実行します。
コマンドレットが PC 環境にない場合には、以下のコマンドレットを管理者権限にて実行し、Microsoft Graph PowerShell SDK をインストールします。
Install-module Microsoft.Graph
3, サインイン画面が表示された際には、グローバル管理者のユーザー名とパスワードを入力してサインインします。
csv ファイルから一括で処理を進める際には、以下のように記述することができます。
Import-Csv “<csv ファイルパス>"|foreach{ csv ファイルの各行について実行するコマンド (各値は、$_.項目名 で参照)を記載 }
例:
Import-Csv “C:/temp/Book1.csv"|foreach{Remove-MgUser -UserId $_.UserPrincipalName}
各操作、準備する csv ファイルとコマンドの例、および公開情報は以下の通りです。
ユーザ削除
csv ファイル

コマンド例
Import-Csv “<csv ファイルパス>"|foreach{Remove-MgUser -UserId $_.UserPrincipalName}
公開情報
ユーザーを削除する – Microsoft Graph API – Microsoft Graph v1.0 | Microsoft Learn
ユーザ追加
csv ファイル

コマンド例
Import-Csv “<csv ファイルパス>" |foreach{New-MgUser -DisplayName $_.DisplayName -PasswordProfile @{ForceChangePasswordNextSignIn = $true;Password = $_.Password} -AccountEnabled -MailNickName $_.MailNickName -UserPrincipalName $_.UserPrincipalName}
公開情報
ユーザーを作成する – Microsoft Graph v1.0 | Microsoft Learn
ユーザー属性変更 (ユーザーの表示名を変更する例)
csv ファイル

コマンド例
Import-Csv “<csv ファイルパス>"|foreach{Update-MgUser -UserId $_.UserPrincipalName -DisplayName $_.NewDisplayName}
公開情報
ユーザーを更新する – Microsoft Graph v1.0 | Microsoft Learn
グループ メンバーの追加
csv ファイル (グループに所属させるユーザーのオブジェクト ID をリスト)

コマンド例
$GroupId = “<グループのオブジェクトID>" Import-CSV “<csv ファイルパス>" | foreach {New-MgGroupMember -GroupId $GroupId -DirectoryObjectId $_.ObjectId}
公開情報
メンバーを追加する – Microsoft Graph v1.0 | Microsoft Learn
グループ メンバーの削除
csv ファイル (グループから削除するユーザーのオブジェクト ID をリスト)

コマンド例
$GroupId = “<グループのオブジェクトID>" Import-CSV “<csv ファイルパス>" | foreach {Remove-MgGroupMemberByRef -GroupId $GroupId -DirectoryObjectId $_.ObjectId} |
公開情報
メンバーを削除する – Microsoft Graph v1.0 | Microsoft Learn
コマンド例
$GroupId = “<グループのオブジェクトID>" Import-CSV “<csv ファイルパス>" | foreach {Remove-MgGroupMemberByRef -GroupId $GroupId -DirectoryObjectId $_.ObjectId}
公開情報
メンバーを削除する – Microsoft Graph v1.0 | Microsoft Learn
グループ作成
csv ファイル

#セキュリティグループを一括作成する場合のコマンド例
Import-Csv “<csv ファイルパス>"| foreach {
$params = @{
displayName = $_.displayName
mailEnabled = $false
mailNickname = $_.mailNickname
securityEnabled = $true
}
New-MgGroup -BodyParameter $params }
#Microsoft 365 グループを一括作成する場合のコマンド例
Import-Csv “<csv ファイルパス>"| foreach {
$params = @{
displayName = $_.displayName
groupTypes = @(
“Unified"
)
mailEnabled = $true
mailNickname = $_.mailNickname
securityEnabled = $false
}
New-MgGroup -BodyParameter $params }
公開情報
グループを作成する – Microsoft Graph v1.0 | Microsoft Learn
グループ削除
csv ファイル(削除するグループのオブジェクト ID をリスト)

コマンド例
Import-Csv “<csv ファイルパス>"|foreach{Remove-MgGroup -GroupId $_.GroupId}
公開情報
グループの削除 – Microsoft Graph API – Microsoft Graph v1.0 | Microsoft Learn
参考サイト
ユーザー管理
グループ管理
(追記1)ライセンス追加、削除方法
複数アカウントへ操作を行う場合は、以下の形式で対象アカウントの UPN をまとめた想定となります。
csvファイル

skuid は、以下の公開情報に記載の GUID をご指定する。
ライセンスのための製品名とサービス プラン 識別子 – Microsoft Entra | Microsoft Learn
例
$skuid1 = “c7df2760-2c81-4ef7-b578-5b5392b571df"
$skuid2 = “6fd2c87f-b296-42f0-b197-1e91e994b900"
複数アカウントへライセンスを一括して付与するコマンド
Import-Csv “C:\Temp\Target.csv" |%{Set-MgUserLicense -UserId $_.UPN -AddLicenses @( @{ SkuId = $skuid1} ) -RemoveLicenses @()}
複数アカウントからライセンスを一括して削除するコマンド
Import-Csv “C:\Temp\Target.csv" |%{Set-MgUserLicense -UserId $_.UPN -AddLicenses @() -RemoveLicenses @($skuid1)}
複数アカウントへライセンス付与・削除を同時にするコマンド
Import-Csv “C:\Temp\Target.csv" |%{Set-MgUserLicense -UserId $_.UPN -AddLicenses @(@{ SkuId = $skuid1}) -RemoveLicenses @($skuid2)}
(参考)ブログ
PowerShell を使用して Microsoft 365 ライセンスをユーザー アカウントに割り当てる – Microsoft 365 Enterprise | Microsoft Learn
(追記2)ユーザ追加で設定必須な項目、設定な項目
必須な項目
New-MgUser コマンド実行時に、-DisplayName、-PasswordProfile、-AccountEnabled、-MailNickName、-UserPrincipalName のプロパティは全て必須のプロパティとなります。
設定可能な項目
指定可能なオプションとしては、以下の公開情報が参考になります。こちらを使用することで、ユーザー登録時に予めユーザー属性を登録可能です。
ディスカッション
コメント一覧
まだ、コメントがありません