Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
こんにちは!そーまんです。
今回は、GPO を使ってユーザーがパスワードをリセットしたログを見る方法について調べてみました。
管理者ユーザーがユーザーのパスワードをリセットしたり、ユーザーが自分自身のパスワードをリセットした履歴をイベントログや PowerShell で確認することができます。監査だったりトラブル調査だったりと何かあった時に役に立つと思います。ただし、これには設定が必要になりログの量がかなり増える可能性が高いので注意が必要です。
GPO でパスワード変更のログ出力設定をする
1. 「グループポリシーの管理」を開き「Default Domain Policy」を編集する。
イベントログでパスワードリセットを確認する方法
1. 「コンピューターの構成」→「ポリシー」→「Windows の設定」→「セキュリティの設定」→「ローカルポリシー」→「監査ポリシー」をクリックし、「アカウント管理の監査」を右クリックし「プロパティ」をクリックする。
2. 「成功」と「失敗」にチェックを入れる。
本番環境でこの設定を行うと、ログの量がかなり増大すると思います。設定前にログのサイズの設定など確認しましょう。
3. 試しに Windows のパスワードをリセットします。その後にドメインコントローラーのイベントビューアーを開き、以下の方法でセキュリティログをフィルターし、イベント ID を「4724」でフィルターする。
イベント ID | 説明 |
4724 | 管理者ユーザーがユーザーのパスワードを変更した場合 |
4724 | ユーザー自身がユーザーのパスワードを変更した場合 |
4. 以下の画像のようにユーザーのパスワードがリセットされているログが確認できます。
PowerShell でパスワードリセットを確認する方法
以下の画像のようにどの管理者ユーザーがユーザーのパスワードをリセットしたか確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ID = 4724 (Get-ADComputer -SearchBase "OU=Domain Controllers,DC=example,DC=com" -Filter *).Name | ` foreach { Get-WinEvent -ComputerName $_ -FilterHashtable @{LogName="Security";ID=$ID }| ` Foreach { $event = [xml]$_.ToXml() if($event) { $Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S" $AdminUser = $event.Event.EventData.Data[4]."#text" $User = $event.Event.EventData.Data[0]."#text" $Dc = $event.Event.System.computer write-host $AdminUser "が" $User "のパスワードをリセットしました。" "時刻:" $Time "ドメインコントローラー:" $Dc } } } |
上にもありましたが、ちなみに管理者ユーザーだけではなく、ユーザーが自身のパスワードを変更したログも出すことができます。
イベント ID | 説明 |
4724 | 管理者ユーザーがユーザーのパスワードを変更した場合 |
4724 | ユーザー自身がユーザーのパスワードを変更した場合 |
最後に
いかがでしょうか。
Windows の機能でこういったログをイベントログで出力して後に監査目的やトラブル調査で確認することができるようになります。
イベントログでいちいち見るのは手間がかかり厳しいので、実際は PowerShell で使う形になるのかと思います。
それでは最後までお読みいただき有難うございました!