======== получить данные о неудачный аутенцикациях RDP серев
Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | ForEach-Object {
$event = [PSCustomObject]@{
"Дата" = $_.TimeCreated
"Время" = $_.TimeCreated.TimeOfDay
"Логин" = $_.Properties[0].Value
}
$event
} | Format-Table -AutoSize
========
Задайте имя пользователя, для которого вы хотите узнать информацию
$userName = "ИмяПользователя"
# Получите записи из журнала событий (Security Log) о входах и выходах пользователя
$logEntries = Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4624, 4634 # События входа и выхода из системы
} | Where-Object { $_.Properties[5].Value -eq $userName }
# Выведите результат в виде таблицы
$logEntries | Select-Object TimeCreated, Id, @{Name='UserName';Expression={$_.Properties[5].Value}} | Format-Table -AutoSize
=====
# Задайте имя пользователя, для которого вы хотите узнать информацию
$userName = "ИмяПользователя"
# Получите записи из журнала событий (Security Log) о входах и выходах пользователя
$logEntries = Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4624, 4634 # События входа и выхода из системы
} | Where-Object { $_.Properties[5].Value -eq $userName }
# Создайте объекты PowerShell для каждого входа и выхода
$sessionData = @()
$lastLogon = $null
foreach ($logEntry in $logEntries) {
$entry = New-Object PSObject -Property @{
TimeCreated = $logEntry.TimeCreated
Id = $logEntry.Id
UserName = $logEntry.Properties[5].Value
}
if ($logEntry.Id -eq 4624) {
$lastLogon = $logEntry.TimeCreated
}
elseif ($logEntry.Id -eq 4634 -and $lastLogon) {
$entry | Add-Member -MemberType NoteProperty -Name Duration -Value ($logEntry.TimeCreated - $lastLogon)
$lastLogon = $null
}
$sessionData += $entry
}
# Выведите результат в виде таблицы
$sessionData | Select-Object TimeCreated, Id, UserName, Duration | Format-Table -AutoSize