Microsoft 365の管理業務において、特定ユーザーがいつ最後にサインインしたかを把握する必要がある場面は少なくありません。監査対応、ライセンスの有効活用、セキュリティインシデントの調査など、目的は様々です。しかし、サインイン情報は複数の場所に記録されており、適切な方法で確認しなければ正確な情報を得られません。本記事では、管理者がユーザーの最終サインイン日時を確認する代表的な方法を、手順とともに解説します。
【要点】この記事で確認すること
- 最初に見る場所: Microsoft 365管理センターの「アクティブユーザー」一覧に表示される最終サインイン日時です。
- 切り分けの軸: 管理センターの表示、Azure ADのサインインログ、Microsoft 365監査ログ、PowerShellによる取得など、情報源によって詳細度や保持期間が異なります。
- 注意点: 最終サインイン日時はUTCで記録されるため、日本時間に変換して解釈する必要があります。また、非インタラクティブサインインも含まれる場合があり、意図したユーザー操作と異なることがあります。
ADVERTISEMENT
目次
1. 最終サインイン日時の確認が必要になる場面
監査対応で特定ユーザーの利用実態を証明する必要がある、あるいはライセンスの再利用のために長期間サインインしていないユーザーを特定するなど、管理者が最終サインイン日時を確認する機会は多岐にわたります。また、セキュリティインシデント発生時に、不正アクセスの痕跡を調査する目的でも利用されます。具体的には、次のようなケースが代表的です。
- 内部監査: 社内規定に従い、ユーザーが適切にシステムを利用しているかを確認します。
- ライセンス管理: 長期間利用のないユーザーからライセンスを回収し、コスト最適化を図ります。
- 退職者の確認: 退職予定者が最終サインインした日時を記録し、アカウント無効化のタイミングを判断します。
- 外部監査への対応: 監査法人などからユーザーのアクティビティに関する証跡を求められた場合に迅速に回答します。
これらの場面では、単に日時を知るだけでなく、そのサインインがインタラクティブ(ユーザーが直接操作)なのか、非インタラクティブ(アプリやサービスによる自動認証)なのかを区別する必要がある場合もあります。
2. Microsoft 365管理センターで確認する方法
最も手軽な方法は、Microsoft 365管理センターの「アクティブユーザー」ページから確認する方法です。以下の手順で操作します。
- Microsoft 365管理センター(https://admin.microsoft.com)にサインインします。全体管理者またはユーザー管理管理者の権限が必要です。
- 左側のナビゲーションから「ユーザー」→「アクティブユーザー」を選択します。
- ユーザー一覧が表示されます。表の列に「最終サインイン」が表示されていることを確認します。もし表示されていない場合は、「列の選択」から「最終サインイン」にチェックを入れて表示させます。
- 確認したいユーザーを見つけ、その行の「最終サインイン」列に表示された日時を確認します。日時はUTCで表示されるため、日本時間(+9時間)に換算して読み取ります。
- 特定のユーザーをクリックして詳細画面を開くと、さらに詳細なサインイン情報(操作方法など)が表示されることがありますが、最終サインイン日時は一覧で十分です。
この方法のメリットは、特別な設定を必要とせず、管理画面から直感的に確認できる点です。ただし、表示される情報は最終サインイン日時のみであり、サインインの種類やデバイスなどの詳細は含まれません。また、データの保持期間は30日間です。
3. Azure ADサインインログで詳細を確認する方法
より詳細なサインイン情報を確認するには、Azure ADのサインインログを参照します。ここでは、サインインの成功・失敗、場所、デバイス、アプリケーションなどが記録されています。
Azure ADサインインログへのアクセス手順
- Azureポータル(https://portal.azure.com)にサインインします。全体管理者またはセキュリティ管理者の権限が必要です。
- 左側メニューで「Azure Active Directory」を選択します。
- 「監視」セクションの「サインイン」ログをクリックします。
- 上部のフィルターを使って、ユーザー名や期間を指定して検索します。例えば、「ユーザー」フィルターに確認したいユーザーのUPN(ユーザープリンシパル名)を入力します。
- 結果一覧から該当するサインインイベントを見つけ、列の「サインイン日時」を確認します。必要に応じて、詳細をクリックするとIPアドレスやアプリケーションなどが表示されます。
Azure ADサインインログは、最大30日間(Azure AD Premiumライセンスがあればそれ以上)保持されます。また、インタラクティブサインインだけでなく、非インタラクティブサインインも含まれます。そのため、ユーザーが直接操作していないバックグラウンドの認証も記録される点に注意が必要です。
4. Microsoft 365監査ログで確認する方法
監査ログを利用すると、サインインに限らず、ファイルアクセスやメール操作など、より広範囲なユーザーアクティビティを確認できます。ただし、監査ログを検索するためには事前に監査ログの有効化が必要です(既定で有効になっているテナントもあります)。
監査ログを検索する手順
- Microsoft 365 コンプライアンスポータル(https://compliance.microsoft.com)にサインインします。監査ログの表示には「監査ログ」の権限(組織管理や監査管理者など)が必要です。
- 左側メニューから「監査」を選択します。
- 「検索」タブで、次の条件を設定します。
アクティビティ: 「ユーザーがサインインした」
開始日と終了日: 確認したい期間
ユーザー: 確認したいユーザー名 - 「検索」をクリックすると、結果が表示されます。各レコードの「日付」列がサインイン日時です(UTC)。
- 結果をCSVにエクスポートして、表計算ソフトで分析することも可能です。
監査ログの保持期間は、テナントのライセンスによって異なります。E5ライセンスでは標準で90日間、アドオンで最長10年まで保存できます。監査ログの情報は非常に詳細ですが、検索に時間がかかる場合があるため、対象ユーザーや期間を絞り込むことが実務上のポイントです。
5. PowerShellで最終サインイン日時を一括取得する方法
複数ユーザーの最終サインイン日時を一度に取得したい場合、PowerShellを使うと効率的です。Microsoft Graph PowerShell SDKまたはAzure AD PowerShellモジュールを利用します。ここでは、Microsoft Graph PowerShell SDKを使用した例を紹介します。
PowerShellで一括取得する手順
- 管理者としてWindows PowerShellを起動し、次のコマンドでMicrosoft Graphモジュールをインストールします(未インストールの場合)。
Install-Module Microsoft.Graph -Scope CurrentUser - 必要なスコープでサインインします。
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All" - すべてのユーザーの最終サインイン日時を取得するコマンドを実行します。
Get-MgUser -All -Property "UserPrincipalName", "DisplayName", "SignInActivity" | Select-Object UserPrincipalName, DisplayName, @{Name="LastSignInDateTime";Expression={$_.SignInActivity.LastSignInDateTime}} - 特定のユーザーのみ取得する場合は、フィルターを追加します。
Get-MgUser -Filter "UserPrincipalName eq 'user@contoso.com'" -Property "SignInActivity" | Select-Object UserPrincipalName, @{Name="LastSignInDateTime";Expression={$_.SignInActivity.LastSignInDateTime}} - 結果をCSVにエクスポートするには、末尾に
| Export-Csv -Path "C:\LastSignIn.csv" -NoTypeInformationを追加します。
PowerShellを使う最大の利点は、自動化できることです。定期的なレポート作成や、閾値を超えたユーザーを自動で抽出するスクリプトも組めます。ただし、Graph APIの呼び出しには適切な権限が必要であり、大量のユーザーを取得する場合はページング処理に注意してください。
6. 確認時の注意点と失敗パターン
最終サインイン日時の確認でよくある失敗や注意点をまとめます。
タイムゾーンの誤解
管理センターやログに表示される日時はUTC(協定世界時)です。そのまま日本時間だと解釈すると、実際よりも9時間遅い時間になります。必ず日本時間に変換してください。例えば、UTCで2025-03-20 10:00:00 は日本時間では2025-03-20 19:00:00です。
非インタラクティブサインインの混入
Azure ADサインインログや監査ログには、ユーザーが直接操作しなくても行われる非インタラクティブサインイン(アプリ認証など)も記録されます。そのため、ユーザーがPCを操作していない夜間にもサインインが記録されることがあります。監査対応で「ユーザーが自らサインインしたか」を問われた場合、インタラクティブサインインのみを抽出する必要があります。Azure ADサインインログでは「インタラクティブ」列でフィルタリング可能です。
データ保持期間の限界
管理センターの最終サインイン表示は約30日間のデータに基づいています。31日以上前のサインインは「該当なし」と表示されることがあります。監査ログもライセンスにより保持期間が異なるため、長期間さかのぼる必要がある場合は、事前に保持ポリシーを確認しておきましょう。
権限不足
管理者以外のユーザーは当然ながらこれらの情報を閲覧できません。また、全体管理者であっても、特定のロールに委任されている場合は必要な権限がない可能性があります。具体的には、「ユーザー管理管理者」は管理センターでの最終サインイン表示を、「監査ログ管理者」は監査ログの検索を実行できます。事前に権限を確認してください。
7. 各確認方法の比較
| 確認方法 | 表示項目 | 保持期間 | 必要な権限 | 備考 |
|---|---|---|---|---|
| 管理センター | 最終サインイン日時のみ | 約30日 | 全体管理者またはユーザー管理管理者 | 最も手軽だが詳細不明 |
| Azure ADサインインログ | 日時、IP、アプリ、インタラクティブ/非インタラクティブなど | 30日(Premiumで長期可能) | 全体管理者またはセキュリティ管理者 | 詳細な分析に最適 |
| 監査ログ | 日時、アクティビティ、詳細データ | 90日(E5)、アドオンで最大10年 | 監査ログ管理者または組織管理 | アクティビティ単位で追跡可能 |
| PowerShell | 自由にカスタマイズ可能 | APIの制限に依存 | Graph APIの適切なスコープ | 自動化・一括取得に便利 |
8. よくある質問
Q1. 最終サインイン日時が「該当なし」と表示されるのはなぜですか?
管理センターの表示は直近30日間のデータに基づくため、30日以上サインインがないユーザーは「該当なし」となります。また、ユーザーが作成されてから一度もサインインしていない場合も同様です。より長期間の情報が必要な場合は、Azure ADサインインログや監査ログを確認してください。
Q2. 非インタラクティブサインインを除外するにはどうすればよいですか?
Azure ADサインインログでは、「インタラクティブ」列でフィルタをかけて「はい」を選択することで、ユーザー自身によるサインインのみを表示できます。監査ログではアクティビティ「ユーザーがサインインした」はインタラクティブのみを記録する場合が多いですが、確認が必要です。
Q3. PowerShellでエラーが発生します。どうすればよいですか?
エラーの原因として、モジュールがインストールされていない、権限不足、スコープの指定ミスなどが考えられます。まずは Connect-MgGraph が成功するか確認し、必要なら Install-Module Microsoft.Graph を再実行してください。また、-Scopes に User.Read.All と AuditLog.Read.All が含まれていることを確認します。
Q4. 監査ログを有効にするにはどうすればよいですか?
Microsoft 365 コンプライアンスポータルで「監査」→「監査ログの検索」を開き、画面の指示に従って有効化します。多くのテナントでは既定で有効ですが、無効の場合は「監査ログの記録を開始する」ボタンをクリックします。有効化には組織管理の権限が必要です。
まとめ
ユーザーの最終サインイン日時を確認する方法は複数あり、目的や環境に応じて適切なものを選択することが重要です。管理センターでは手軽に確認できますが、詳細な分析にはAzure ADサインインログや監査ログを活用するとよいでしょう。PowerShellを使えば多数のユーザーを一括確認でき、定期的な棚卸しに便利です。日時の解釈やサインインの種類に注意しながら、正確な情報を取得して監査対応に役立ててください。
ADVERTISEMENT
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
