【 New-MgDirectoryAdministrativeUnitMemberByRef 】コマンドレット――Azure Active Directoryの「管理単位」にユーザーを追加する:Windows PowerShell基本Tips(68)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-MgDirectoryAdministrativeUnitMemberByRef」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Azure Active Directory」(Azure AD)に作成された「管理単位」(以下、Azure AD管理単位)に所属するユーザーを追加する「New-MgDirectoryAdministrativeUnitMemberByRef」コマンドレットです。
New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットとは?
「New-MgDirectoryAdministrativeUnitMemberByRef」は、PowerShellを利用してAzure AD管理単位に所属させたいユーザーを追加するためのコマンドレットです。Azure AD管理単位はActive Directory(AD)の「組織単位(OU)」に相当する“入れ物”ですが、ADのOUようにGUIの管理ツール上で複数のユーザーをドラッグ&ドロップでまとめて追加するようなことはできません。そのため、管理単位に複数ユーザーをまとめて追加する場合は、New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットを使って処理を自動化します。
なお、New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットは、本連載第45回で解説した「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "AdministrativeUnit.ReadWrite.All"」と実行して、Azure ADへの接続とアクセス許可を与えておくことが前提条件になります。
New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットの書式
New-MgDirectoryAdministrativeUnitMemberByRef [オプション]
New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットの主なオプション
オプション | 意味 |
---|---|
-AdministrativeUnitId | ユーザーを追加する管理単位のIDを指定する |
-BodyParameter | 管理単位に追加するユーザーを指定する |
管理単位のIDを調べる
New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットを使用して管理単位にユーザーを追加する場合、事前に操作する「管理単位のID」を知る必要があります。管理単位のIDは、「Get-MgDirectoryAdministrativeUnit」コマンドレットで確認します(画面1)。
コマンドレット実行例
Get-MgDirectoryAdministrativeUnit | select DisplayName,Id
画面1 Get-MgDirectoryAdministrativeUnitコマンドレットを実行し、実行結果から「DisplayName」と「Id」の2つの列だけを表示するようにして管理単位のIDを確認できるようにした
管理単位にユーザーを追加する
New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットを使用して管理単位にユーザーを追加する場合、管理単位の「ID」と追加するユーザーの「UPN(User Principal Name:ユーザープリンシパル名)」をそれぞれ指定しています。
追加対象となるロールIDの指定には「-DirectoryRoleId」オプション、ユーザーの追加には「-BodyParameter」オプションを指定します。なお「-BodyParameter」オプションは「OData」を使って指定する必要があり、ユーザーは「@{"@odata.id" = "https://graph.microsoft.com/v1.0/user/$("ユーザーUPN")"}」となるように指定します(画面2)。
コマンドレット実行例
New-MgDirectoryAdministrativeUnitMemberByRef -AdministrativeUnitId c5192e90-5afd-4cbe-b860-6356b3ce3c68 -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/users/$("muto@ij7301.onmicrosoft.com")"}
画面2 New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットに続けて「-AdministrativeUnitId」オプションで管理単位のIDを指定し、「-BodyParameter」オプションで管理単位に追加するユーザーのUPNを指定した。UPNの指定にはODataを使うため「@{"@odata.id" = "https://graph.microsoft.com/v1.0/users/$("muto@ij7301.onmicrosoft.com")"}」のように指定している
管理単位に複数のユーザーをまとめて追加する
あらかじめCSVファイルに管理単位に追加したいユーザーを登録しておき、PowerShellからCSVファイルの内容を読み込むことで、まとめてユーザーを追加できます。
CSVファイルは画面3のように1行目に「user」とだけ記述し、2行目以降に追加したいユーザーのUPNを1人1行ずつ記述しておきます。
その後、「Import-Csv」コマンドレットでCSVファイルの内容を読み込ませ、続けて「ForEach-Object」コマンドレットでCSVファイルに記載されたの内容を1行ずつ読み込んだUPNをNew-MgDirectoryAdministrativeUnitMemberByRefコマンドレットに代入するように指定します(画面4)。
コマンドレット実行例
Import-Csv C:\csv\users.csv | ForEach-Object {New-MgDirectoryAdministrativeUnitMemberByRef -AdministrativeUnitId c5192e90-5afd-4cbe-b860-6356b3ce3c68 -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/users/$($_.user)"}}
画面4 最初にImport-CsvコマンドレットでCSVファイルの内容を読み取り、ForEach-ObjectコマンドレットでNew-MgDirectoryAdministrativeUnitMemberByRefコマンドレットを連続して実行するように指定している。-AdministrativeUnitIdオプションと-BodyParameterオプションを指定するところまでは前の例と同じだが、UPNを指定する部分で「$_.user」と指定することでCSVファイル内のuser列に記載されたUPNを代入するように指定している
筆者紹介
国井 傑(くにい すぐる)
株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.