Поиск EventID по всем контроллерам домена при помощи PoSh

Появилась необходимость найти кто из администраторов включил отключенную учетку пользователя. Как это сделать при помощи PoSh читайте ниже:

В журналах Windows это событие попадает в журнал Security и имеет ID 4722. В Powershell Есть как минимум два коммандлета для работы с журналами:
1. Get-WinEvent
2. Get-EventLog

Для решения задачи будем использовать Get-WinEvent, т.к. он работает значительно быстрее чем Get-EventLog.

Итак, нам надо пройтись по всем домен-контроллерам организации и собрать с них события с ID 4722. Результаты, желательно выгрузить в файл, для дальнейшей обработки.

$dc = (Get-ADForest).Domains | %{ Get-ADDomainController –Filter * -Server $_ }
$StartTime = (Get-Date).AddDays(-1)
$datafile = "c:\AdEnable.csv"
Set-Content -Value 'Кто;Кого;Что;Когда;Где;Куда;' -Path $datafile -Encoding UTF8
$dc | Foreach {
	            $Event = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4722; StartTime=$StartTime} -ComputerName $_
	            foreach ($ev in $event)
                {
                    $who = $ev.Properties[4].Value.ToString()
                    $whom = $ev.Properties[0].Value.ToString()
                    $cntrlr = $ev.MachineName
                    $time = $ev.TimeCreated
                    $AdObj = Get-ADObject -filter{SamAccountName -eq $whom}
                    $Class = $AdObj.ObjectClass
                    $DistName = $AdObj.DistinguishedName
                    $Data = $who+";"+$whom+";"+$Class+";"+$time+";"+$cntrlr+";"+$DistName
                    Add-Content -Value $Data -Path $DataFile -Encoding UTF8    
                }
   }

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.