【 Get-MgAuditLogSignIn 】コマンドレット――Azure Active Directoryのサインインログを参照する:Windows PowerShell基本Tips(71)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-MgAuditLogSignIn」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Azure Active Directory」(Azure AD)に記録されたサインインログを参照する「Get-MgAuditLogSignIn」コマンドレットです。
Get-MgAuditLogSignInコマンドレットとは?
「Get-MgAuditLogSignIn」は、PowerShellを利用してAzure ADにサインインしたユーザーとアプリの履歴を参照するためのコマンドレットです。Azure ADは最大で「30日前」までのサインインログしか参照できないため、実行結果を保存するコマンドレットと組み合わせて使用することで、永続的にログを参照できるような運用が可能になります。
なお、New-MgDirectoryAdministrativeUnitMemberByRefコマンドレットは、本連載第45回で解説した「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "AuditLog.Read.All", "Directory.Read.All"」と実行して、Azure ADへの接続とアクセス許可を与えておくことが前提条件になります。
Get-MgAuditLogSignInコマンドレットの主なオプション
オプション | 意味 |
---|---|
-Filter | 特定の条件におけるサインインだけを出力する |
ユーザーがアプリにアクセスした日時を調べる
Get-MgAuditLogSignInコマンドレットをオプションなしで実行すると、サインインしたユーザーの「ユーザーID」、アクセスしたアプリの「表示名」、アプリの「ID」の3つだけが表示されます。これでは人の目から見て実用的なログではないため、Get-MgAuditLogSignInコマンドレットに続けてログの出力結果として見たい列を「ft」コマンドで指定します(画面1)。
コマンドレット実行例
Get-MgAuditLogSignIn |ft userPrincipalName,AppDisplayName,CreatedDateTime
画面1 Get-MgAuditLogSignInコマンドレットを実行し、実行結果からユーザーのUPN(userPrincipalName)、アプリの表示名(AppDisplayName)、サインイン日時(CreatedDateTime)が表示されるようにした。なお、ftコマンドに続けて指定可能な列の一覧は「Get-MgAuditLogSignIn |gm」と指定して実行することで確認できる
特定のユーザーがサインインしたログだけを参照する
Get-MgAuditLogSignInコマンドレットで出力されるサインインログのうち、特定の条件を満たすログだけを出力するように指定する場合は、「-Filter」オプションを使用します(画面2)。-Filterオプションでは「"startsWith(userPrincipalName,'muto')"」のように指定することで、userPrincipalName属性の値が「muto」で始まる(startsWith)ログだけを出力するように指定できます。
コマンドレット実行例
Get-MgAuditLogSignIn -Filter "startsWith(userPrincipalName,'muto')" |ft userPrincipalName,AppDisplayName,CreatedDateTime
画面2 Get-MgAuditLogSignInコマンドレットに続けて-FilterオプションでUPN(userPrincipalName属性)がmutoで始まるログだけを出力するように指定した。なお、-Filterオプションで使用できる演算子にはstartsWith以外にも「○○が含まれる場合」のように指定する際に使用できるcontains演算子や、完全一致する値を指定する際に使用できるeq演算子などが利用できる。eq演算子の場合は「-Filter userPrincipalName eq 'muto@ij7301.onmicrosoft.com'」のように指定する必要がある
サインインログをCSV形式で保存する
Get-MgAuditLogSignInコマンドレットによる実行結果をCSV(Comma-Separated Values)形式に変換し、CSVファイルとして保存したい場合は、Get-MgAuditLogSignInコマンドレットに続けて「Export-Csv」コマンドレットを使用します(画面3)。
コマンドレット実行例
Get-MgAuditLogSignIn |Select-Object -Property userPrincipalName,AppDisplayName,CreatedDateTime | Export-Csv -Path C:\export\signinlog.csv
画面3 Get-MgAuditLogSignInコマンドレットに続けてSelect-Objectコマンドレットを使用してユーザーのUPN(userPrincipalName)、アプリの表示名(AppDisplayName)、サインイン日時(CreatedDateTime)が表示されるようにした(Select-Objectコマンドレットではなくftコマンドを使用した場合、CSV形式で保存することができなくなるので注意)。その後、Export-Csvコマンドレットで実行結果をCSVファイルとして保存した
筆者紹介
国井 傑(くにい すぐる)
株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.