PowerShell: Как в windows server выяснить какие пользователи заходили по времени и дате, сформировать таблицу: различия между версиями
Перейти к навигации
Перейти к поиску
Ross (обсуждение | вклад) Нет описания правки |
Ross (обсуждение | вклад) Нет описания правки |
||
| Строка 26: | Строка 26: | ||
Out-GridView -Title "Максимально полный список RDP входов" | Out-GridView -Title "Максимально полный список RDP входов" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<gallery> | |||
Userlist.png|Результат выполнения скрипта | |||
</gallery> | |||
Версия от 23:36, 8 апреля 2026
# Убрали лимит (выгребаем всё доступное)
$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 входов"
-
Результат выполнения скрипта