EntraIDユーザ/グループ一括作成削除方法

2024年1月16日

年度が切り替わったりする際に、大量のユーザが増えたり減ったりすると、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

参考サイト

ユーザー管理

MSOnline / AzureAD PowerShell から Graph PowerShell SDK への移行について 4_ユーザー管理 | Japan Azure Identity Support Blog (jpazureid.github.io)

グループ管理

MSOnline / AzureAD PowerShell から Graph PowerShell SDK への移行について 5_グループ管理 | Japan Azure Identity Support Blog (jpazureid.github.io)

(追記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

Microsoft Graph PowerShell SDK を使用したライセンス管理操作の紹介 | Japan Azure Identity Support Blog (jpazureid.github.io)

(追記2)ユーザ追加で設定必須な項目、設定な項目

必須な項目

New-MgUser コマンド実行時に、-DisplayName、-PasswordProfile、-AccountEnabled、-MailNickName、-UserPrincipalName のプロパティは全て必須のプロパティとなります。

設定可能な項目

指定可能なオプションとしては、以下の公開情報が参考になります。こちらを使用することで、ユーザー登録時に予めユーザー属性を登録可能です。

New-MgUser (Microsoft.Graph.Users) | Microsoft Learn

Azure,Entra

Posted by mitsuru