Поиск событий в журналах EventLog на DC Печать

В данных примерах условлено, что выполнение идет с конкретного контроллера домена. Если выполнять удаленно, либо сразу на нескольких DC, можно указать аргумент -ComputerName dc1,dc2,dc3

 

PS C:\> Get-EventLog -LogName security -InstanceId 4740 | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Найдет в логе события блокировки учетных записей в домене

PS C:\> Get-EventLog -LogName security -InstanceId 4625 | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Полезное дополнение для предыдущего командлета. Найдет в логе ошибки входа, которые предшествуют блокировке учетной записи. В сообщении будет IP адрес источника

PS C:\> Get-EventLog -LogName security -After "05/02/2015" | where { ($_.message -match "Comp1") -or ($_.message -match "User1") } | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Найдет в логе Security все события после указанной даты, относящиеся к рабочей станции Comp1, или к учетной записи User1

 

Еще интересный пример по парсингу эвентлогов

image_EventLog_SVN-Parsing.png

Нужно выбрать поля User и PROPFIND из тела события

 
[array]$svnUsers = @()

Get-EventLog -LogName 'VisualSVNServerActivity' -After '06/04/2018' | ?{$_.Message -like 'PROPFIND*'} | %{$svnUsers += [pscustomobject]@{UserName=((([regex]::Match($_.Message,'(?<=User:\s).+')).Value) -replace "`t|`n|`r",'');Repo=(([regex]::Match($_.Message,'(?<=PROPFIND\s)/.+?/.+?/')).Value)}}
 
$svnUsers | Select-Object -Unique -Property UserName,Repo | Export-Csv -Path ('{0}\Documents\svnUsers.csv' -f $env:USERPROFILE) -Force