Что-то странное у меня творится с подключением по RDP, постоянно отваливается соединение. Захотелось мне посмотреть кто и откуда коннектился на сервер. Быстрый способ узнать кто и откуда заходил на сервер можно через PowerShell.
$RDPAuths = Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -FilterXPath '<QueryList><Query Id="0"><Select>*[System[EventID=1149]]</Select></Query></QueryList>'
[xml[]]$xml=$RDPAuths|Foreach{$_.ToXml()}
$EventData = Foreach ($event in $xml.Event)
{ New-Object PSObject -Property @{
TimeCreated = (Get-Date ($event.System.TimeCreated.SystemTime) -Format 'yyyy-MM-dd hh:mm:ss K')
User = $event.UserData.EventXML.Param1
Domain = $event.UserData.EventXML.Param2
Client = $event.UserData.EventXML.Param3
}
} $EventData | FT
Здесь мы считываем из журнала Windows события с EventID=1149: дату, время, имя пользователя, домен, IP адрес точки подключения. Событие "Remote Desktop Services: User authentication succeeded".
Журнал можно найти в разделе Applications and Services Logs → Microsoft -> Windows → Terminal-Services-RemoteConnectionManager → Operational.
Могут пригодиться и другие типы событий:
- EventID=4624 (An account was successfully logged on)
- EventID=4625 (An account failed to log on)
- EventID=4778 (A session was reconnected to a Window Station)
- EventID=4779 (A session was disconnected from a Window Station)
- EventID=9009 (The Desktop Window Manager has exited with code X)
- EventID=4647 (User-initiated logoff)
Дополнительно скрипт списка подключений с клиента:
$properties = @(
@{n='TimeStamp';e={$_.TimeCreated}}
@{n='LocalUser';e={$_.UserID}}
@{n='Target RDP host';e={$_.Properties[1].Value}}
)
Get-WinEvent -FilterHashTable @{LogName='Microsoft-Windows-TerminalServices-RDPClient/Operational';ID='1102'} | Select-Object $properties
Скрипты честно содрал здесь:
https://winitpro.ru/index.php/2018/09/25/analizing-rdp-logs-windows-terminal-rds/