PowerShell: Кто входил в систему (когда последним?)
Перейти к навигации
Перейти к поиску
# Убрали лимит (выгребаем всё доступное)
$Events = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624}
$Results = $Events | ForEach-Object {
$xml = [xml]$_.ToXml()
$TargetUserName = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq "TargetUserName"})."#text"
$LogonType = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq "LogonType"})."#text"
$IpAddress = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq "IpAddress"})."#text"
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
User = $TargetUserName
LogonType = $LogonType
SourceIP = $IpAddress
}
}
# Фильтруем RDP, группируем и находим последний вход
$Results | Where-Object { $_.LogonType -eq "10" } |
Group-Object User |
ForEach-Object {
$_.Group | Sort-Object TimeCreated -Descending | Select-Object -First 1
} |
Select-Object User, TimeCreated, SourceIP |
Out-GridView -Title "Максимально полный список RDP входов"