最後に対話ログオンを行った日時を知りたい

はじめまして、Windows プラットフォームサポート担当の北川 隆介(キタガワ リュウスケ)です。
初めての投稿ですが、今後ともよろしくお願いいたします。

今日は、Windows Server 2008 の新機能である、直近の対話ログオンの記録を残す機能をご紹介いたします。
セキュリティ上の観点から、直近のログオンを行った日時を知りたいということがあるかと思います。これまでの Active Directory の実装では lastLogon か lastLogonTimeStamp 属性を使用するしか手段がありませんでした。

これらの属性については以下の記事をご参照ください。
- タンポポ、ビデオデッキの時計、および最終ログオン時刻: 我々が最も苦手とするもの
< https://gallery.technet.microsoft.com/scriptcenter/3ea5d277-8a03-4c3a-9d62-b1501911f1ee >

表1 Windows Server 2003 で使用できる属性

属性 説明 複製
badPasswordTime 最後にパスワードを間違えた日時 対象外
badPwdCount パスワードを間違えた件数 対象外
lastLogon 最後にログオンした時刻 対象外
lastLogonTimeStamp 最後にログオンした時刻 対象 ※1

※1 通常の Active Directory の複製スケジュールとは異なり、( 14 日 – ( 0 ~ 5 日のランダム値) = 9 ~ 14 日 ) 最大 14 日間の更新遅延があります。
この属性は Windows Server 2003 の機能レベルを必要とします。

lastLogonTimeStamp はリアルタイムに更新されるものではないため、最新の最終ログオン時刻を知ることは出来ませんでした。
ただし、使用されていないユーザーを探す目的であれば、この機能で十分ですよね。

詳しくは、下記のブログをご確認ください。
- 最後に対話ログオンを行った日時を知りたい 2
https://blogs.technet.com/b/jpntsblog/archive/2014/06/23/3633333.aspx

なお、Windows Server 2008 では通常の複製対象として扱われる、新しい属性が追加されました。

表2 Windows Server 2008 から追加された属性

属性 説明 複製
msDS-FailedInteractiveLogonCount 対話ログオンの履歴を有効にしてからの失敗した対話ログオン数 ※2 対象
msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon 直近の対話ログオンが成功してから失敗した対話ログオン数 ※2 対象
msDS-LastFailedInteractiveLogonTime 直近の対話ログオンに失敗した時刻 ※2 対象
msDS-LastSuccessfulInteractiveLogonTime 直近の対話ログオンに成功した時刻 ※2 対象

※2 これの属性は名前に対話ログオンを示す名前が属性名になっていますが、サービス等のログオンや認証失敗も値が更新されます。

これらの属性については、以下の記事に記載があります。
- Active Directory Domain Services: Last Interactive Logon
<https://technet.microsoft.com/en-us/library/dd446680.aspx>

これら属性はブルートフォース攻撃などのパスワードに関するセキュリティーソリューションとして提供されています。
この機能が有効な Windows Vista 以上のドメインメンバーは、ログオン時に最後に対話ログオンに成功した時刻とそれから対話ログオンに失敗した回数を表示できます。ユーザーはこのメッセージを確認し、[ OK ] をクリックすることでデスクトップ画面を表示することが出来ます。
その為、ユーザーは最後にログオンしてからの不正なログオンを確認できるようになります。

図1 ログオン時に表示される、前回の対話ログオンに関する情報

clip_image001

しかし! この対話型ログオンに対してメッセージを表示できる新機能よりも、直近の対話ログオンを行った日時を示す属性が複製対象になった事に喜びを感じておられるお客様も多いかと思います。
これまで、直近のログオンした日時を確認したいというお問い合わせは多く頂戴しており、その度複製に関するご要望を頂いておりました。

そういった場合には、是非 msDS-LastSuccessfullInteractiveLogonTime の属性をご確認いただければと思います。
以下にこの機能を使用するために必要な条件をご紹介いたします。

[ 直近の対話ログオン履歴を記録するために必要な条件 ]
1) ドメインの機能レベルが Windows Server 2008 であること
ドメイン コントローラーは Windows Server 2008 以上を実行する必要がありますが、クライアントは Windows XP などの OS でログオンしても属性値は更新されます。

2) [以前のログオンに関する情報をクライアント コンピュータに提供する] のグループ ポリシーがドメイン コントローラで有効であること
コンピュータの構成 -> ポリシー -> 管理用テンプレート -> システム -> KDC

 

[ 直近の対話ログオン履歴を表示するために必要な条件 ]
1) ドメイン メンバーの OS が Windows Vista 以上を実行していること
Windows XP などのこの機能に対応していない OS は直近の対話ログオンに関する情報が表示されず、そのままデスクトップ画面が表示されます。

2) [ユーザー ログオン時に以前のログオンに関する情報を表示する] のグループ ポリシーがドメイン メンバーで有効であること
コンピュータの構成 -> ポリシー -> 管理用テンプレート ->Windows コンポーネント -> Windows ログオンのオプション

※3 ドメインの機能レベルを Windows Server 2008 にしていない環境で、このポリシーを有効にしないでください。ドメインにログオンできなくなりますので、ご注意ください。

 

最後にユーザー側に表示されるスクリーンショットと Active Directory 上の属性値をご紹介いたします。

図2 初回ログオン成功時にユーザー側に表示されるメッセージ

clip_image002

図3 初回ログオン成功時に記録される Active Directory 上の属性値

clip_image004

※4 [ 属性エディタ ] タブは Active Directory ユーザーとコンピュータの [表示] – [拡張機能] にチェックを入れる事で確認できます。
もちろん、ADSI エディッタで確認することも可能です。(ファイルを指定して実行から、adsiedit.msc)

図4 2 回目以降で、直近の対話ログオン成功時からの認証失敗が無い場合に、表示されるメッセージ

clip_image005

※5 このメッセージは翻訳が誤っております。申し訳ございません。正しくは図5 のように失敗した対話ログオンが存在しないことを示しています。
つまり、本来は以下のような内容のメッセージが正しいです。

間違い :
ログオンの失敗
このアカウントに最後に対話型ログオンした後で、失敗した対話型ログオンがあります。

正しい :
ログオンの失敗
このアカウントに最後に対話型ログオンした後で、失敗した対話型ログオンはありません。

図5 2 回目以降で、直近の対話ログオン成功時からの認証失敗が無い場合に、表示されるメッセージ(英語 OS)

clip_image006

図6 パスワードを 1 回間違えたときの Active Directory 上の属性値

clip_image008

※6 badPwdCount とmsDS-FailedInteractiveLogonCount 等、値が更新されていることが分かります。

図7 直近の対話ログオン成功時からの認証失敗がある場合に、表示されるメッセージ

clip_image009

図8 図7の時の、Active Directory 上の属性値

clip_image011

※7 認証成功時に msDS-FailedInteractiveLogonCountAtSeccessfulLogon の値が msDS-FailedInteractiveLogonCount に戻ります。

 - 変更履歴
2009年5月14日  初回投稿
2014年6月23日  ブログ「最後に対話ログオンを行った日時を知りたい 2」について説明を追記

 

「コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。」