Розберемося, як в доменному середовищі Active Directory по журналам контролерів домену визначити, хто з адміністраторів скинув пароль облікового запису певного користувача.
В першу чергу, в політиках домену потрібно включити аудит подій керування обліковими записами. Для цього:
- Відкрийте консоль управління груповими політиками Group Policy Management (Gpmc.msc) і відредагує політику домену Default Domain Policy.
- Потім в консолі редактора групових політик, перейдіть в розділ Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy
- Знайдіть і включіть політику Audit User Account Management (Якщо потрібно фіксувати в журналі як успішні, та й невдалі спроби зміни пароля, виберіть опції Success і Failure).Примітка. Цю ж політику можна включити і в розділі розширених політик аудиту (Computer Configuration> Policies> Windows Settings> Security Settings> Advanced Audit Configuration)
- Після проходження циклу поновлення групових політик на клієнтах можна спробувати змінити пароль будь-якого користувача в AD.
- Після цього, відкрийте консоль перегляду подій на контролері домену і перейдіть в розділ Event Viewer -> Windows Logs -> Security. Клацніть ПКМ по журналу і виберіть пункт Filter Current Log.
- В параметрах фільтра вкажіть, що потрібно вивести тільки події з кодом EventID 4724.
- У списку подій залишаться тільки події успішної зміни пароля (An attempt was made to reset an account's password.). При цьому в розширеному поданні події можна побачити ім'я облікового запису адміністратора, яка виконала зміну пароля (Subject :) і, власне, обліковий запис користувача, чий пароль було скинуто (Target Account :).
Порада. В контексті отримання повної інформації про події зміни пароля користувача, в фільтр можна додати визначається одним із таких подій:
- 4724 (628 - в старих версіях Windows Server) - An attempt was made to reset an account's password (скидання пароля користувача адміністратором)
- 4723 (627 - в старих версіях Windows Server) - An attempt was made to change an account's password (зміна пароля самим користувачем)
Інформацію про дану подію з журналів всіх контролерів домену Active Directory за допомогою PowerShell командлетів Get-ADComputer і Get-WinEvent, можна отримати таким чином:(Get-ADComputer -SearchBase 'OU = Domain Controllers, DC = winitpro, DC = loc' -Filter *). Name | foreach
Get-WinEvent -ComputerName $ _ -FilterHashtable @ LogName = "Security"; ID = 4724 | Foreach
$ Event = [xml] $ _. ToXml ()
if ($ event)
$ Time = Get-Date $ _. TimeCreated -UFormat "% Y-% m-% d% H:% M:% S"
$ AdmUser = $ event.Event.EventData.Data [4]. "# Text"
$ User = $ event.Event.EventData.Data [0]. "# Text"
$ Dc = $ event.Event.System.computer
write-host "Admin" $ AdmUser "reset password to" $ User "on" $ dc "" $ Time
При необхідності ці дані можна записувати прямо з PowerShell в зовнішнє mysql базу даних, через спеціальний коннектор MySQL .NET Connector за аналогією зі сценарієм, описаним в статті Дізнаємося хто видалив файл на файловому сервері.