【 Update-MgUser 】コマンドレット――Azure Active Directoryユーザーの属性を変更する:Windows PowerShell基本Tips(51)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Update-MgUser」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Azure Active Directory」(Azure AD)ユーザーの属性を変更する「Update-MgUser」コマンドレットです。
Update-MgUserコマンドレットとは?
「Update-MgUser」は、PowerShellを利用してAzure ADユーザーの属性を変更するコマンドレットです。Azure ADユーザーの属性はブラウザから変更する方法が一般的ですが、複数のユーザーを一括で変更する場合などに有効です。
なお、Get-MgUserコマンドレットは、本連載第45回で解説した≪「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "User.ReadWrite.All"」を実行して、Azure ADへの接続とアクセス許可を与えておくことが前提条件になります。
Update-MgUserコマンドレットの主なオプション
オプション | 意味 |
---|---|
-UserId | 属性を変更するAzure ADユーザーを指定する |
-DisplayName | ユーザーの表示名を変更する。省略可能 |
-usageLocation | ユーザーの利用場所を変更する。省略可能 |
ユーザーの表示名を変更する
Update-MgUserコマンドレットでは、「-UserId」オプションで属性を変更するユーザーを指定します。その後、続けて設定変更したい属性をオプションで指定します。ユーザーの表示名を変更する場合は、「-DisplayName」属性を利用します(画面1)。
Update-MgUserコマンドレットで設定変更可能な属性一覧は、MicrosoftのWebサイト「Update-MgUser」で確認できます。
コマンドレット実行例
Update-MgUser -UserId 1ea13bcf-c9ef-4040-90c9-96c42d3ae595 -DisplayName "武藤 晋三"

画面1 事前に「Get-MgUser」コマンドレットで属性を変更するユーザーのUserIdを調べ、Update-MgUserコマンドレットを実行した。「-UserId」オプションでユーザー名を指定し、「-DisplayName」オプションでDisplayName属性の値が「武藤 晋三」になるように指定している。その後、Get-MgUserコマンドレットを再実行してDisplayName属性の値が変化していることを確認している
UserIdが分からないユーザーの属性を変更する
Update-MgUserコマンドレットは-UserIdオプションの指定が必須で、UserIdはGet-MgUserコマンドレットで事前に調べておく必要があります。そのため、Get-MgUserコマンドレットで調べるところから、Update-MgUserコマンドレットで属性を変更するまでをまとめておくと便利です(画面2)。
コマンドレット実行例
Update-MgUser -UserId (Get-MgUser -Filter "Displayname eq '山田太郎'").Id -DisplayName "Yamada Taro"

画面2 前のコマンド例と同じだが、今回は「-UserId」に続けて「(Get-MgUser -Filter "Displayname eq '山田太郎'").Id」と指定した。これにより、DisplayName属性が「山田太郎」のユーザーを指定していることになる。また、Update-MgUserコマンドレットの実行後にGet-MgUserコマンドレットを実行することで、DisplayName属性の値が設定した通り変化していることが確認できる
複数のユーザーの属性をまとめて変更する
Azure ADユーザーの設定では、利用場所の属性変更はよくあることです。この変更を複数ユーザーに対してまとめて実行したい場合は、Get-MgUserコマンドレットで事前にユーザー情報を取得し、Update-MgUserコマンドレットの「-usageLocation」オプションで利用場所属性を変更する設定を「ForEach-Object」コマンドレットで順番に実行します(画面3)。
コマンドレット実行例
Get-MgUser -All | ForEach-Object {Update-MgUser -UserId $_.id -UsageLocation "JP"}

画面3 Get-MgUserコマンドレットの実行結果を「ForEach-Object {...}」の中に1つずつ投入して処理を実行。投入した値は{...}内の「-UserId $_.id」部分に入っている。一方、{...}内ではUpdate-MgUserコマンドレットを実行し、「-UsageLocation」オプションで「JP」という値を設定している
筆者紹介
国井 傑(くにい すぐる)
株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.