# Выполнять на контроллере домена или с правами на чтение журналов безопасности DC
$AccountName = "myservice"
$DCs = (Get-ADDomainController -Filter *).Name
foreach ($DC in $DCs) {
Write-Host "Поиск на контроллере домена: $DC"
try {
Get-WinEvent -ComputerName $DC -FilterHashtable @{
LogName = 'Security'
ID = 4624
StartTime = (Get-Date).AddDays(-7) # Период поиска
} -ErrorAction Stop | Where-Object { $_.Properties[5].Value -eq $AccountName } |
Select-Object TimeCreated, @{n='TargetUser';e={$_.Properties[5].Value}}, @{n='SourceComputer';e={$_.Properties[18].Value}}, @{n='LogonType';e={$_.Properties[8].Value}}
} catch {
Write-Warning "Не удалось прочитать журнал на $DC"
}
} | Format-Table -AutoSize