検索
連載

【 Get-MgUser 】コマンドレット――Azure Active Directoryユーザーを参照するWindows PowerShell基本Tips(50)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-MgUser」コマンドレットを解説します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Azure Active Directory」(Azure AD)に作成されたユーザーを参照する「Get-MgUser」コマンドレットです。

Get-MgUserコマンドレットとは?

 「Get-MgUser」は、PowerShellを利用してAzure ADユーザーを参照するためのコマンドレットです。Azure ADのユーザー一覧はブラウザから参照する方法が一般的ですが、Get-MgUserコマンドレットを利用することで、特定の条件に合致するユーザーだけを簡単に参照できるようになります。

 なお、Get-MgUserコマンドレットは、本連載第45回で解説した≪「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "User.Read.All"」を実行して、Azure ADへの接続とアクセス許可を与えておくことが前提条件になります。

Get-MgUserコマンドレットの書式

Get-MgUser [オプション]


Get-MgUserコマンドレットの主なオプション

オプション 意味
-All 全てのAzure ADユーザーを表示する。省略可能
-Filter 条件に合致するAzure ADユーザーを表示する。省略可能
-ConsistencyLevel ConsistencyLevelヘッダを定義し、Advanced Queryの有効化を設定する。省略可能
-Count Get-MgUserコマンドレットが返した値の数を変数として設定する。省略可能


ディレクトリに含まれる全てのAzure ADユーザーを表示する

 Get-MgUserコマンドレットに「-All」オプションを指定して実行すると、Connect-MgGraphコマンドレットで接続したディレクトリに作成された全てのユーザーを表示します(画面1)。

コマンドレット実行例

Get-MgUser -All

画面1
画面1 Get-MgUserコマンドレットに「-All」オプションを指定して実行すると、ディレクトリ内の全てのユーザーが表示される


特定のユーザーの属性を参照する

 Azure ADユーザーの一覧ではなく、特定のユーザーだけに絞ってユーザーの情報(属性情報)を参照したい場合、「-Filter」オプションを利用します。この場合は、-Filterオプションに続けて「"属性 演算子 '値'"」のように記述して条件を指定します(画面2)。

 なお、Get-MgUserコマンドレットには「-UserId」という特定のユーザーを指定するオプションがありますが、「UserId」と呼ばれるAzure AD内で使用されるIDを事前に調べておかなければなりません。そのため、ここでは-UserIdオプションではなく、-Filterオプションを使用しています。

コマンドレット実行例

Get-MgUser -Filter "userPrincipalName eq 'eiji@tr1870.adfs.jp'" |fl

画面2
画面2 -Filterオプションの記述「"userPrincipalName eq 'UPN'"」では、「UPN」の部分にユーザーのユーザープリンシパル名を指定することで特定のユーザーを参照できる。さらに、ユーザーの全ての属性が参照できるようにパイプ(|)で「fl」コマンドをつないでいる


値が前方一致するユーザーを一覧表示する

 -Filterオプションでは、条件の演算子として「eq」以外に前方一致を表す「startswith」が利用できます。startswithの場合は、-Filterオプションに続けて「"startswith(属性, '値')"」のように記述します(画面3)。

コマンドレット実行例

Get-MgUser -Filter "startsWith(surname, '山田')"

画面3
画面3 -Filterオプションでは「"startsWith(surname, '山田')"」と記述することで名字(surname)が「山田」で始まる文字列だったら、という条件を指定している


演算子に「ne」を利用する

 「-Filter」オプションでは条件の演算子として「eq」と「startswith」だけが利用可能で、既定で不一致を表す「ne」や候補一致を表す「endswith」などを利用することができません。

 これらの演算子を利用可能にするには、「Advanced Query」と呼ばれる機能を有効にしなければなりません。それを設定するのが「-ConsistencyLevel」と「-Count」オプションです(画面4)。

 なお、演算子によっては条件に指定できない属性があります。詳細はMicrosoftのWebサイト「Azure ADディレクトリオブジェクトの詳細クエリ機能」で確認してください。

コマンドレット実行例

Get-MgUser -ConsistencyLevel eventual -Count userCount -Filter "endsWith(userPrincipalName, 'adfs.jp')"

画面4
画面4 -ConsistencyLevelオプションで「eventual」、-Countオプションで「userCount」を指定した。この2つのオプションをセットで指定することでAdvanced Queryが利用できるようになり、-Filterオプションで「endsWith」演算子が利用できるようになる。ここでは「"endsWith(userPrincipalName, 'adfs.jp')"」と記述して「userPrincipalName属性が『adfs.jp』で終わるユーザー」という条件を指定している

筆者紹介

国井 傑(くにい すぐる)

株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る