Microsoft Graph PowerShellを利用してユーザーの最終サインイン日時を取得する

はじめに

Microsoft Graph PowerShellを利用し、ユーザーの最終サインイン日時を取得する方法をご紹介します。

※2023年3月現在、最終サインイン日時はMicrosoft GraphのBeta版でのみ取得することができます。

最終サインイン日時の取得

Microsoft Graph PowerShellの準備

Microsoft Graph PowerShell SDKのインストールを行います。

 Install-module Microsoft.Graph

導入手順は以下の記事でも紹介されています。
Microsoft Graphの概要も説明されているので合わせてご確認ください。

blog.jbs.co.jp

Microsoft Graph PowerShell手順

Beta版のAPIを利用する必要があるため、Microsoft Graph PowerShell のバージョンを変更します。

Select-MgProfile "beta"

次に、Microsoft Graph に接続します。

Connect-MgGraph -ContextScope Process -Scopes "AuditLog.Read.All Organization.Read.All User.Read.All"

※サインイン画面が表示された際には、グローバル管理者のユーザー名とパスワードを入力してサインインします。

接続が完了したら、以下のコマンドを実行します。
今回は、全ユーザーの最終サインイン日時のリストをcsvファイルで出力します。

Get-MgUser -All -Property id,userPrincipalName,signInActivity,CreatedDateTime,UserType | Select-Object Id, UserPrincipalName, @{label = "LastSignInDateTime"; expression = { $_.SignInActivity.lastSignInDateTime } },@{label = "LastNonInteractiveSignInDateTime"; expression = { $_.SignInActivity.lastNonInteractiveSignInDateTime} },CreatedDateTime,UserType | Export-Csv -NoTypeInformation "< csv出力先のパス.csv >"

実行が完了したら、Microsoft Graphからサインアウトします。

Disconnect-MgGraph

出力されたcsvファイルの確認

以下のように結果が出力されます。

項目 内容
Id ユーザーのオブジェクトID
UserPrincipalName ユーザーのUserPrincipalName
LastSignInDateTime 最後に行った対話型サインインの日時(UTC)
ユーザーが対話的な認証方法で最後にサインインした時刻が表示されます
LastNonInteractiveSignInDateTime 最後に行った非対話型サインインの日時(UTC)
クライアントがユーザーに代わって最後にサインインした時刻が表示されます
CreatedDateTime ユーザーが作成された日時(UTC)
UserType ユーザーの種類(Member/Guest)

"LastSignInDateTime"および"LastNonInteractiveSignInDateTime"から、ユーザーの最終サインイン日時を確認することができます。
※UTCで表示されるため、日本時間に変換するには+9時間します。

最後のサインインが2020年4 月より前に行われていたり、一度もサインインしていなかったりする場合は、値が空欄となります。

LastSignInDateTime タイムスタンプを生成するには、サインインを成功させる必要があります。 LastSignInDateTime プロパティは新機能であるため、次の場合は lastSignInDateTime プロパティの値が空になる可能性があります。

  • 前回成功したユーザーのサインインは、2020 年 4 月より前に行われました。
  • 影響を受けたユーザー アカウントが、成功したサインインに使用されたことがありませんでした。 learn.microsoft.com

おわりに

Microsoft Graph PowerShellを利用することで、ユーザーの最終サインイン日時を一括で取得することができます。
こちらの情報を活用してユーザーの棚卸しを行うこともできますね。

今回ご紹介した手順であればアプリの登録も不要で、すぐに確認することができるので、ぜひお試しください。

執筆担当者プロフィール
井上 卓

井上 卓(日本ビジネスシステムズ株式会社)

ハイブリッドクラウド本部所属。Microsoft 365やAzureの技術を広く扱っています。

担当記事一覧