PowerShell: Как в windows server выяснить какие пользователи заходили по времени и дате, сформировать таблицу: различия между версиями
Перейти к навигации
Перейти к поиску
Ross (обсуждение | вклад) Нет описания правки |
Ross (обсуждение | вклад) Нет описания правки |
||
| Строка 27: | Строка 27: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<gallery widths=" | <gallery widths="800px" heights="420px"> | ||
Userlist.png|Результат выполнения скрипта | Userlist.png|Результат выполнения скрипта | ||
</gallery> | </gallery> | ||
Текущая версия от 23:38, 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 входов"
-
Результат выполнения скрипта