PowerShell: Как в windows server выяснить какие пользователи заходили по времени и дате, сформировать таблицу: различия между версиями
Перейти к навигации
Перейти к поиску
Ross (обсуждение | вклад) Новая страница: «<syntaxhighlight lang="dos"> # Убрали лимит (выгребаем всё доступное) $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.Ev...» |
Ross (обсуждение | вклад) Нет описания правки |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="powershell"> | ||
# Убрали лимит (выгребаем всё доступное) | # Убрали лимит (выгребаем всё доступное) | ||
$Events = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} | $Events = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} | ||
| Строка 26: | Строка 26: | ||
Out-GridView -Title "Максимально полный список RDP входов" | Out-GridView -Title "Максимально полный список RDP входов" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<gallery widths="800px" heights="420px"> | |||
Userlist.png|Результат выполнения скрипта | |||
</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 входов"
-
Результат выполнения скрипта