Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 508
Благодарности: 140

Профиль | Отправить PM | Цитировать


Отследить можно при помощи планировщика заданий. Создаем задачу реакции на событие 4740:

Код: Выделить весь код
start /wait schtasks /Create /S DC1 /TN "Locked Out Account" /RU "NT AUTHORITY\SYSTEM" /SC ONEVENT /TR "'c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -noprofile -file 'C:\Scripts\LockedOutAccount.ps1'" /EC "Security" /MO *[System[EventID=4740]] /RL HIGHEST
где DC1 — имя контроллера домена, на котором создается задача для вылавливания нужного события.
C:\Scripts\LockedOutAccount.ps1 — путь к Powershell скрипту.

Сам скрипт:
Код: Выделить весь код
$Subject = "A user account was locked out" 
$Theme = "A user account was locked out:"
$Server = "smtp.office365.com" 
$From = "LockedAccount@firma.ru"
$To = "a.ivanov@firma.ru","v.pupkin@firma.ru"
$encoding = [System.Text.Encoding]::UTF8
$secpasswd = ConvertTo-SecureString "hArD_P@ssw0rd" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($From, $secpasswd)

$Body = Get-WinEvent -maxevents 1 -FilterHashtable @{LogName = "Security";ID = 4740;StartTime = (Get-Date).AddSeconds(-15)} | Select TimeCreated,`
@{n = "Account";e = {([xml]$_.ToXml()).Event.EventData.Data | ?{$_.Name -eq "TargetUserName"} | %{$_.'#text'}}}, `
@{n="Computer name";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "TargetDomainName"}| %{$_.'#text'}}}

$body = $body -replace "@{" -replace "}" -replace "=", ": " -replace ";","`n" -replace "TimeCreated","Time Created" -replace "^","`n" 
$BodyM = $Body

Send-MailMessage -From $From -To $To -SmtpServer $server -Body "$Theme `n$BodyM" -Subject $Subject -Encoding $encoding -Port "587" -Credential $mycreds -UseSsl
Разумеется, адрес почтового сервера и имена адресатов укажите свои. Если в домене используется подписывание Powershell скриптов, то не забудьте подписать скрипт.

Отправлено: 08:37, 30-05-2016 | #2