Загрузка данных



Import-Module ActiveDirectory

$DCs = @(
    "ru-dc-p01.sys.clz.ru",
    "ru-dc-p02.sys.clz.ru"
)

$since = (Get-Date).AddHours(-6)

$filter = '(|(sAMAccountName=*Alchevskaya*)(userPrincipalName=*Alchevskaya*)(mail=alchevskayaalena@yandex.ru)(sn=*Алчевская*))'

foreach ($dc in $DCs) {

    Write-Host "`n========== $dc ==========" -ForegroundColor Cyan

    Write-Host "`n[1] SEARCH USER" -ForegroundColor Yellow

    try {
        $users = @(Get-ADUser -Server $dc `
            -LDAPFilter $filter `
            -Properties Mail,WhenCreated `
            -ErrorAction Stop)

        if ($users.Count -eq 0) {
            Write-Host "User NOT FOUND" -ForegroundColor Yellow
        } else {
            $users | Select-Object Name,SamAccountName,Mail,Enabled,WhenCreated |
                Format-List
        }
    }
    catch {
        Write-Host "AD query error: $_" -ForegroundColor Red
    }

    Write-Host "`n[2] SECURITY EVENTS 4720,4738" -ForegroundColor Yellow

    try {
        $events = @(Get-WinEvent -ComputerName $dc `
            -FilterHashtable @{
                LogName   = "Security"
                Id        = 4720,4738
                StartTime = $since
            } -ErrorAction Stop)

        Write-Host "Total account events: $($events.Count)"

        $matches = @($events | Where-Object {
            $_.Message -match "Alchevskaya|Алчевская|Cheridnichenko"
        })

        if ($matches.Count -eq 0) {
            Write-Host "Matching events NOT FOUND" -ForegroundColor Yellow
        } else {
            $matches |
                Select-Object TimeCreated,Id,Message |
                Format-List
        }
    }
    catch {
        Write-Host "Event query: $_" -ForegroundColor Yellow
    }
}