Azureユーザーの最終ログイン日時の出力方法の備忘録(ユーザー棚卸目的)
Microsoft Azure AD情報(Microsoft Entra)につきPowerShellで操作するにもGraphモジュールが無いと出力できないようになってきている。また、情報はブラウザからエクスポートすることもできないようだ。ギャラリーでモジュールをインストールしてどうのこうのというややこしい情報が多かったので簡単にした方法を掲載しておこう。
(1)PowerShellを起動し、Graphモジュールをインストールする(初回のみ)
Install-Module Microsoft.Graph -Scope CurrentUser
(2)Graphでユーザーメンテに関連するモジュールをインポート
Import-Module "Microsoft.Graph.Identity.Signins"
Import-Module "Microsoft.Graph.Users"
Import-Module "Microsoft.Graph.Groups"
(3)必要な権限を付与(Azure上のグローバル管理者権限があれば動作しますがこれがない場合は・・・?)
Connect-MgGraph -Scopes "User.Read.All"
Connect-MgGraph -Scopes "AuditLog.Read.All"
(4)出力先を指定してUTF8で出力(※ファイルパスにファイルがないこと。あると失敗する。文字コード指定しないとASCIIになるのか文字化けしてしまう)
Get-MgUser -All -Property 'UserPrincipalName','SignInActivity','Mail','DisplayName' | Select-Object @{N='UserPrincipalName';E={$_.UserPrincipalName}}, @{N='DisplayName';E={$_.DisplayName }}, @{N='LastSignInDate';E={$_.SignInActivity.LastSignInDateTime}} | Export-Csv -Path C:\temp\lastsignin.csv -encoding UTF8 -NoTypeInformation -NoClobber
ファイルをExcelなどで確認して終わり。