アカウント ロックアウト トラブルシューティング (第三回) - アカウント ロックアウトの調査に役立つツール

第一回 はアカウント ロックアウトの仕組みと主な要因について、また 第二回 ではアカウントロックアウトの具体的な調査方法について解説しました。

最終回となる本稿では、アカウント ロックアウトの調査に役立つツールを 2 つほど紹介します。

1. Account Lockout and Management Tools

本ツールはアカウント ロックアウトの原因調査のために用意されたツールで、下記のサイトで公開しています。

 Account Lockout and Management Tools

 https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=18465

上記のサイトよりダウンロードした ALtool.exe を実行して任意の場所に展開すると、アカウント ロックアウトの調査に役立つツールが複数含まれています。インストールは不要です。Windows 7 などのクライアント OS でも利用することが可能です。今回はこの中に含まれる EventCombMT.exe と LockoutStatus.exe を紹介します。

 

EventCombMT.exe

ドメイン コントローラーが複数台ある環境では、全台のドメイン コントローラーにログオンして 1 台ごとに監査ログを確認していては大変手間が掛かってしまいます。このような場合は、EventCombMT.exe が便利です。EventCombMT.exe は、複数のドメイン コントローラー上のセキュリティ ログから特定のイベント ID のイベントを検索して、テキストファイルに出力することができます。

004_eventcombmt

 

 

[Tips] EventCombMT.exe の利用方法1. Domain Admins グループに所属しているユーザーでログオンします。2. EventCombMT.exe を起動します。3. [Options] メニューの [Set Output Directory] をクリックして、既存のフォルダをクリックするか、[新しいフォルダの作成] をクリックして出力を保存する新しいフォルダを作成し、[OK] をクリックします。※ 出力ディレクトリを指定しない場合、デフォルトの場所は C:\Temp になります。4. [Select To Search /  Right Click To Add] の下の白いボックスを選択し、右クリック [Get DCs in Domain] を選択します。ドメインに存在しているドメイン コントローラーが表示されます。5. [Choose Log Files to Search] にて [Security] にチェックを入れます。6. [Event Types] で [Failure Audit] にチェックを入れます。7. [Event IDs] に検索対象のイベント ID を半角スペース区切りで入力します。(例、4740 4771 4776 4625 4767)8. [Source] にて、[ALL SOURCES] を選択します。9. 特定のユーザー名を指定する場合は、[Text] に ユーザー名を入力します。※ログが記録された日時を指定する場合には、10 から 12 の手順を行います。指定しない場合は 13 に進みます。10. [Options] メニューの [Set Date Range] をクリックします。11. [From] ボックスで、開始日時を選択します。12. [To] ボックスで、終了日時を選択し、[OK] をクリックします。13. [Search] をクリックします。14. 検索が完了すると、検索結果が手順 3. で指定した出力ディレクトリに作成され、結果を参照することができます。

 

LockoutStatus.exe

本ツールを利用すると特定のドメイン ユーザーの認証失敗回数 (badPwdCount) をリモートから確認することができます。下記は User01 というユーザーの badPwdCount が 3 になっている様子を示します。

005_lockoutstatus

 

[Tips] LockoutStatus.exe の利用方法1. Domain Admins グループに所属しているユーザーでログオンします。2. LockoutStatus.exe を起動します。3. [File] - [Select Target] を選択し、[Target User Name] に認証失敗回数を確認したいユーザー名を入力します。4. 一覧の中に、各ドメイン コントローラー上で保持している値が表示されます。認証失敗回数は [Bad Pwd Count] 列に表示されます。

※ badPwdCount の値は、ユーザーがログオンに成功すると 0 になります。

 

2. badPwdCount を取得するための PowerShell サンプルスクリプト

不特定多数のユーザーでアカウント ロックアウトが発生している場合、まずは、どのユーザーでロックアウトが発生しているかを把握したいといったことがあると思います。このような場合は、ドメイン コントローラーでユーザー毎に保持している認証失敗回数 (badPwdCount) を定期的に取得する方法が有効です。そのための PowerShell のコマンドレットを使用したサンプル スクリプトを紹介します。

下記は、badPwdCount の値が 3 以上となっているユーザーの情報を定期的に取得して、C:\Temp\BadPwdCount.log に書き出す内容となっています。

-Server の引数には PDCE の役割を保持するサーバーを指定します。(上記の例では dc01 というサーバーを指定しています)

SampleScript.ps1

-------------------------------

Import-Module activedirectory$LogFilePath = "C:\Temp\BadPwdCount.log"get-date -Format G | Out-File -Append -FilePath $LogFilePathGet-ADUser -Filter {badPwdCount -ge 3} -Properties * -Server dc01 | select SamAccountName,UserPrincipalName,badPwdCount,AccountLockoutTime,badPasswordTime | Format-Table -autosize | Out-String -Width 4096 | Out-File -Append -FilePath $LogFilePath

-------------------------------

※ 4 行目の Get-ADUser から $LogFilePath までは 1 行で記載します。

 

SampleScript.ps1 を作成したら、コマンド プロンプトを起動して、下記のコマンドを実行します。

Powershell.exe -ExecutionPolicy Unrestricted -File C:\Temp\SampleScript.ps1

 

すると、C:\Temp の下に BadPwdCount.log が作成されます。

 

BadPwdCount.log

====================

2015/06/04 15:40:01SamAccountName UserPrincipalName  badPwdCount AccountLockoutTime     badPasswordTime-------------- -----------------  ----------- ------------------     ---------------User01         User01@contoso.com           5 2015/06/04 15:25:09 130778727092862381

====================

badPwdCount は認証失敗回数を、AccountLockoutTime はアカウントがロックアウトされた時刻を示します。

 

badPasswordTime は最後に認証に失敗した時刻です。この値は 1601/01/01 0:00:00 から何百ナノ秒経過しているかを表します。W32tm コマンドを使用することで、日時を確認することができます。上記の場合、badPasswordTime の値は 2015/06/04 15:25:09 となります。

> w32tm /ntte 130778727092862381151364 06:25:09.2862381 - 2015/06/04 15:25:09

 

※ Powershell.exe -ExecutionPolicy Unrestricted -File C:\Teme\SampleScript.ps1 を実行する度に BadPwdCount.log にログが追記されます。バッチファイルを作成してタスク スケジューラに 5 分毎に実行するように構成することで、定期的に badPwdCount の値を取得することができます。

※ badPwdCount の値は、ユーザーがログオンに成功すると 0 になります。

※ 上記のサンプルスクリプトはドメイン コントローラーで実行することを想定していますが、もしも、クライアント コンピューターで実行したい場合には、リモート サーバー 管理ツール (RSAT) をインストールして、[コントロール パネル] -[プログラムと機能]-[Windows の機能の有効化または無効化]から次の機能を有効にします。

[リモート サーバー管理ツール]-[役割管理ツール]-[AD DS および AD LDS ツール]- [AD DS ツール]-[AD DS スナップインおよびコマンドライン ツール]

 

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

 

- 変更履歴

2016 年 4 月 19 日  初回投稿

2016 年 5 月 19 日  誤字訂正