Как посмотреть кто подключался к компьютеру по rdp
Перейти к содержимому

Как посмотреть кто подключался к компьютеру по rdp

  • автор:

База знаний

We support Ukraine

Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?

1. Нажмите кнопку «Пуск» -> «Администрирование» -> «Просмотр событий»:

2. Последовательно выберите в списке журналов слева:
«Журналы приложений и служб» («Applications and Services Logs») -> «Microsoft» -> «Windows»

затем найдите в списке «TerminalServices-LocalSessionManager» -> «Operational»

3. Справа, в разделе «Действия» нажмите «Фильтр текущего журнала»:

4. Введите код события 21,25 в соответствующее поле в появившейся форме и нажмите кнопку ОК:

5. В писке останутся только интересующие вас записи. Каждя запись — это вход через удаленный рабочий стол (RDP), с указанием времени входа, имени пользователя и IP с которого он был произведен:

Просмотр и анализ логов RDP подключений в Windows

date

16.11.2022

user

itpro

directory

PowerShell, Windows Server 2016, Windows Server 2019

comments

комментариев 86

В этой статье мы рассмотрим, как получить и проанализировать логи RDP подключений в Windows. Логи RDP подключений позволяют администраторам терминальных RDS серверов/ферм получить информацию о том, какие пользователи подключались к серверу, когда был выполнен вход и когда сеанс завершен, с какого устройства (имя или IP адрес) подключался пользователь.

Описанные методики получения и исследования RDP логов применима как к Windows Server 2022/2019/2016/2012R2, так и для десктопных версий Windows 11, 10, 8.1 c.

События RDP подключений в журналах Windows (Event Viewer)

Когда пользователь удаленно подключается к RDS серверу или удаленному столу Windows (RDP), информация об этих событиях сохраняется в журналы Windows. Рассмотрим основные этапы RDP подключения и связанные с ними события в Event Viewer.

  1. Network Connection
  2. Authentication
  3. Logon
  4. Session Disconnect/Reconnect
  5. Logoff

Network Connection: – событие установления сетевого подключение к серверу от RDP клиента пользователя. Событие с EventID – 1149 (Remote Desktop Services: User authentication succeeded). Наличие этого события не свидетельствует об успешной аутентификации пользователя. Этот журнал находится в разделе Applications and Services Logs -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Operational. Включите фильтр по данному событию (ПКМ по журналу-> Filter Current Log -> EventId 1149).

1149 Terminal-Services-RemoteConnectionManager

С помощью PowerShell можно вывести список всех попыток RDP подключений:

$RDPAuths = Get-WinEvent -LogName ‘Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational’ -FilterXPath ‘
[xml[]]$xml=$RDPAuths|Foreach
$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

вывести журнал подключений к RDP/RDS серверу с помощью powershell

В результате у вас получится список с историей всех сетевых RDP подключений к данному серверу. В событии содержится имя пользователя, домен (если используется NLA аутентификация, при отключенном NLA текст события выглядит иначе) и IP адрес компьютера пользователя.

Remote Desktop Services: User authentication succeeded

Authentication: – успешная или неудачная аутентификация пользователя на сервере. Журнал Windows -> Security. Здесь нас могут интересовать события с EventID – 4624 (успешная аутентификация — An account was successfully logged on) или 4625 (ошибка аутентификации — An account failed to log on). Обратите внимание на значение LogonType в событии.

  • LogonType = 10 или 3 — при входе через терминальную службу RDP —.
  • LogonType = 7, значит выполнено переподключение к уже существующему RDP сеансу.
  • LogonType = 5 – событие RDP подключения к консоли сервера (в режиме mstsc.exe /admin)

Вы можете использовать события с ошибками аутентификации для защиты от удаленного перебора паролей через RDP. СВы можете автоматически блокировать на файерволе IP адреса, с которых выполняется подбор пароля, простым PowerShell скриптом (см. статью).

rdp событие аутентфикации An account was successfully logged on

При этом имя пользователя содержится в описании события в поле Account Name, имя компьютера в Workstation Name, а имя пользователя в Source Network Address.

Обратите внимание на значение поля LogonID – это уникальный идентификатор сессии пользователя, с помощью которого можно отслеживать дальнейшую активность данного пользователя. Но при отключении от RDP сессии (disconnect) и повторного переподключения к той же сессии, пользователю будет выдан новый TargetLogonID (хотя RDP сессия осталась той же самой).

Вы можете получить список событий успешных авторизаций по RDP (событие 4624) с помощью такой команды PowerShell.

Get-EventLog security -after (Get-date -hour 0 -minute 0 -second 0) | ? | Out-GridView

получиь журнал RDP входов с помощью PowerShell

Logon: – RDP вход в систему, EventID – 21 (Remote Desktop Services: Session logon succeeded. Это событие появляется после успешной аутентификации пользователя. Этот журнал находится в разделе Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Как вы видите, здесь можно узнать идентификатор RDP сессии для пользователя — Session ID.

Событие с EventID – 21 (Remote Desktop Services: Shell start notification received) означает успешный запуск оболочки Explorer (появление окна рабочего стола в RDP сессии).

Session Disconnect/Reconnect – события отключения и переподключения к сессии имеют разные коды в зависимости от того, что вызвало отключение пользователя (отключение по неактивности, заданному в таймаутах для RDP сессий; выбор пункта Disconnect в сессии; завершение RDP сессии другим пользователем или администратором и т.д.). Эти события находятся в разделе журналов Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Рассмотрим RDP события, которые могут быть полезными:

  • EventID – 24 (Remote Desktop Services: Session has been disconnected) – пользователь отключился от RDP сессии.
  • EventID – 25 (Remote Desktop Services: Session reconnection succeeded) – пользователь переподключился к своей имеющейся RDP сессии на сервере.
  • EventID – 39 (Session has been disconnected by session ) – пользователь сам отключился от своей RDP сессии, выбрав соответствующий пункт меню (а не просто закрыл окно RDP клиента). Если идентификаторы сессий разные, значит пользователя отключил другой пользователь (или администратор).
  • EventID – 40 (Session has been disconnected, reason code ). Здесь нужно смотреть на код причины отключения в событии. Например:
    • reason code 0 (No additional information is available) – обычно говорит о том, что пользователь просто закрыл окно RDP клиента.
    • reason code 5 (The client’s connection was replaced by another connection) – пользователь переподключился к своей старой сессии.
    • reason code 11 (User activity has initiated the disconnect) – пользователь сам нажал на кнопку Disconnect в меню.

    Событие с EventID – 4778 в журнале Windows -> Security (A session was reconnected to a Window Station). Пользователь переподключился к RDP сессии (пользователю выдается новый LogonID).

    Событие с EventID 4779 в журнале Windows -> Security (A session was disconnected from a Window Station). Отключение от RDP сеанса.

    Logoff: – выход пользователя из системы. При этом в журнале Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational регистрируется событие с EventID 23 (Remote Desktop Services: Session logoff succeeded).

    При этом в журнале Security нужно смотреть событие EventID 4634 (An account was logged off).

    Событие Event 9009 (The Desktop Window Manager has exited with code () в журнале System говорит о том, что пользователь инициировал завершение RDP сессии, и окно и графический shell пользователя был завершен.

    EventID 4647 — User-initiated logoff

    Получаем логи RDP подключений в Windows с помощью PowerShell

    Ниже представлен небольшой PowerShell скрипт, который выгружает из журналов терминального RDS сервера историю всех RDP подключений за текущий день. В полученной таблице указано время подключения, IP адрес клиента и имя пользователя (при необходимости вы можете включить в отчет другие типы входов).

    логи RDP подключений к RDS серверу с IP адресами и учетными записями

    Этот способ позволяет получить RDP логи со отдельностоящего RDSH сервера. Если у вас несколько серверов в ферме RDS, можно опросить этим скриптом каждый из них, либо получить логи с сервера с ролью Remote Desktop Connection Broker.

    Можно экспортировать логи RDP подключений из журнала в CSV файл (для дальнейшего анализа в таблице Excel). Экспорт журнала можно выполнить из консоли Event Viewer (при условии что логи не очищены) или через командную строку:

    WEVTUtil query-events Security > c:\ps\security_log.txt

    Или с помощью PowerShell:

    get-winevent -logname «Microsoft-Windows-TerminalServices-LocalSessionManager/Operational» | Export-Csv c:\ps\rdp-log.csv -Encoding UTF8

    Если ваши пользователи подключаются к RDS серверам через шлюз удаленных рабочих столов Remote Desktop Gateway, вы можете обрабатывать логи подключений пользователей по журналу Microsoft-Windows-TerminalServices-Gateway по EventID 302. Например, следующий PowerShell скрипт выведет полную историю подключений через RD Gateway указанного пользователя:

    powershell поиск в логах удаленных RDP подключений на remote desktop gateway в windows server 2019

    Другие события, связанные с подключениями пользователей на RD Gateway в журнале Microsoft-Windows-TerminalServices-Gateway:

    • 300 — The user %1, on client computer %2, met resource authorization policy requirements and was therefore authorized to connect to resource %4
    • 302 — The user %1, on client computer %2, connected to resource %4
    • 303 — The user %1, on client computer %2, disconnected from the following network resource: %4. Before the user disconnected, the client transferred %6 bytes and received %5 bytes. The client session duration was %7 seconds.

    Список текущих RDP сессий на сервере можно вывести командой:

    Команда возвращает как идентификатор сессии (ID), имя пользователя (USERNAME)и состояние (Active/Disconnect). Эту команду удобна использовать, когда нужно определить ID RDP сессии пользователя при теневом подключении.

    Qwinsta

    Список запущенных процессов в конкретной RDP сессии (указывается ID сессии):

    qprocess

    Логи RDP подключений на клиентах Windows

    Также вы можете изучать логи исходящих подключений на стороне RDP клиента. Они доступны в журнале событий Application and Services Logs -> Microsoft -> Windows -> TerminalServices-ClientActiveXCore -> Microsoft-Windows-TerminalServices-RDPClient -> Operation.

    Например, событие с Event ID 1102 появляется, когда компьютер устанавливает подключение с удаленным RDS хостом Windows Server или компьютером с Windows 10/11 с включенной службой RDP (десктопные версии Windows также поддерживают несколько одновременных rdp подключений).

    The client has initiated a multi-transport connection to the server 192.168.31.102.

    событие с ID 1102 в журнале Microsoft-Windows-TerminalServices-RDPClient событие подключения к RDP серверу на клиенте

    Следующий RDP скрипт выведет историю RDP подключений на указанном компьютере (для получения событий Event Log используется командлет Get-WinEvent):

    powershell вывести история RDP подключений на клиентском компьютере

    Скрипт возвращает SID пользователей, которые инициировали RDP подключения на этом компьютере и DNS имена/IP адреса серверов, к которым подключались пользователи. Вы можете преобразовать SID в имена пользователей.

    Также история RDP подключений пользователя хранится в реестре.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Как узнать конкретный компьютер с которого подключились по rdp протоколу?

    К компьютеру (windows серверу) подключались с другого компьютера с ОС windows по рдп протоколу. На компьютере, с которого подключались, работал VPN. Можно ли на сервере узнать помимо IP адреса и имени RDP пользователя, с какого конкретно компьютера было произведено подключение?

    • Вопрос задан 26 февр.
    • 467 просмотров

    1 комментарий

    Простой 1 комментарий

    А что еще Вы хотите узнать?
    Решения вопроса 1
    системный инженер

    В системном журнале безопасности (Security Log) смотрим события 4624 (успешная аутентификация — An account was successfully logged on) или 4625 (ошибка аутентификации — An account failed to log on) с LogonType=10.
    В описании события имя пользователя — в поле Account Name, имя компьютера — в Workstation Name, IP-адрес — в Source Network Address

    Ответ написан 26 февр.
    Комментировать
    Нравится 5 Комментировать
    Ответы на вопрос 0
    Ваш ответ на вопрос

    Войдите, чтобы написать ответ

    windows

    • Windows
    • +2 ещё

    Почему при импорте .ova в VMware Player иногда не работает интернет?

    • 1 подписчик
    • час назад
    • 16 просмотров

    Кто подключался к RDP в Windows?

    Windows

    Что-то странное у меня творится с подключением по RDP, постоянно отваливается соединение. Захотелось мне посмотреть кто и откуда коннектился на сервер. Быстрый способ узнать кто и откуда заходил на сервер можно через PowerShell.

    $RDPAuths = Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -FilterXPath '' [xml[]]$xml=$RDPAuths|Foreach $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

    rdp

    Здесь мы считываем из журнала 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 = @( @> @> @> ) Get-WinEvent -FilterHashTable @ | Select-Object $properties

    rdp

    Скрипты честно содрал здесь:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *