Просмотр rdp сессий windows 10

Несколько RDP сессий в Windows 10

Как и в прошлых клиентских версиях операционных систем Майкрософт, пользователи Pro и Enterprise Windows 10 редакций могут удаленно подключаться к своим компьютерам через службу удаленных рабочих столов (RDP). Однако есть ограничение на количество одновременных RDP сессии – возможна одновременная работа только одного удаленного пользователя. При попытке открыть вторую RDP сессию, сеанс первого пользователя предлагается завершить.

По сути, ограничение на количество одновременных rdp подключений является не техническим, а скорее лицензионным, запрещающее создавать на базе рабочей станции RDP сервер для работы нескольких пользователей.

Мы рассмотрим два способа отключить ограничение на количество одновременных RDP подключений к Windows 10:

Модификация файла termsrv.dll

Убрать ограничение на количество RDP подключений можно с помощью модификации файла termsrv.dll (файл библиотеки, используемый службой Remote Desktop Services). Файл находится в каталоге C:\Windows\System32).

Перед модификацией файла termsrv.dll желательно создать его резервную копию (в случае необходимости можно будет вернуться к первоначальной версии файла):

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

Перед правкой файла termsrv.dll нужно стать его владельцем и предоставить группе администраторов полные права на него (все операции выполняются аналогично описанным в статье Убираем ограничение на количество RDP сессий в Windows 8). Затем остановите службу Remote Desktop service (TermService) из консоли services.msc или из командной строки:

Net stop TermService

Для редакции Windows 10 x64 RTM (версия файла termsrv.dll — 10.0.10240.16384): Откройте файл termsrv.dll с помощью любого HEX редактора (к примеру, Tiny Hexer)

39 81 3C 06 00 00 0F 84 73 42 02 00

И замените ее на:

B8 00 01 00 00 89 81 38 06 00 00 90

Сохраните файл и запустите службу TermService.

Готовый пропатченный файл termsrv.dll для Windows 10 Pro x64 можно скачать здесь: termsrv_windows_10_x64_10240.zip

RDP Wrapper Library

Альтернативой модификации файла termsrv.dll является использования проекта RDP Wrapper Library. Эта программа работает в качестве прослойки между менеджером управления службами (SCM- Service Control Manager) и службой терминалов (Terminal Services) и позволяет включить не только поддержку нескольких одновременных RDP сессии, но и активировать поддержку RDP Host на домашних редакциях Windows 10. RDP Wrapper не вносит никаких изменений в файл termsrv.dll, просто подгружая termsrv с изменёнными параметрами.

Таким образом, это решение будет работать даже при обновлении версии файла termsrv.dll, что позволяет не опасаться обновлений Windows.

Скачать RDP Wrapper можно с репозитория GitHub: https://github.com/binarymaster/rdpwrap/releases (последняя доступная версия RDP Wrapper Library v1.6)

Архив RDPWrap-v1.6.zip содержит несколько файлов:

  • RDPWinst.exe —программа установки/удаления RDP Wrapper Library
  • RDPConf.exe — утилита настройки RDP Wrapper
  • RDPCheck.exe — Local RDP Checker — утилита проверки RDP
  • install.bat, uninstall.bat, update.bat — пакетные файлы для установки, удаления и обновления RDP Wrapper

Чтобы установить утилиту, запускам файл install.bat с правами администратора.

После окончания установки запускаем RDPConfig.exe. И удостоверяемся, что в секции Diagnostics все элементы окрашены в зеленый цвет.

Пытаемся открыть вторую RDP сессию. Все получилось! Теперь наша Windows 10 позволяет одновременно подключаться по RDP сразу двум удаленным пользователям.

Читайте также:  Пакет windows installer что это

Еще записи по теме: Windows 10

Теневое RDP подключение к рабочему столу пользователя в Windows 10

Помимо использования Remote Assistance, вы можете удаленно подключиться к рабочему столу пользователя Windows 10 с помощью теневого RDP подключения (Remote Desktop Shadowing). Большинство администраторов так или иначе пользовались этим функционалом для подключения к сессиям пользователей на терминальных RDS серверах с Windows Server 2012 R2 / Server 2016. Однако далеко не все знают, что теневое подключение можно использовать для удаленного просмотра и взаимодействия с рабочим столом пользователя и на десктопной Windows 10. Рассмотрим, как это работает.

Как вы помните, если попытаться удаленно подключится к компьютеру с Windows 10 через RDP, то сессия пользователя, работающего локально выбивается (даже если вы включите возможность использования нескольких одновременных RDP сессий в Windows 10). Однако вы можете подключится непосредственно подключиться к консольной сессии пользователя без блокировки его сеанса.

Предположим, вам нужно подключиться с сервера Windows Server 2012 R2 к рабочему столу пользователя, работающего локально за рабочей станцией с Windows 10.

Для теневого подключения к сессии пользователя нужно использовать стандартную RDP утилиту mstsc.exe. Формат команды такой:

Mstsc.exe /shadow: /v:

Также можно использовать одну из опций:

  • /prompt – запросить имя и пароль пользователя, под которым выполняется подключение (если не указано, подключение выполняется под текущим пользователем).
  • /control – режим взаимодействия с сеансом пользователя. Если параметр не задан, вы подключитесь в режиме просмотра (наблюдения) сессии пользователя, т.е. вы не сможете управлять его мышью и вводить данные с клавиатуры;
  • /noConsentPrompt – не запрашивать у пользователя подтверждение на подключение к сессии.

Режим теневого подключения (нужно ли запрашивать подтверждение пользователя, и возможно управления в сессии или только наблюдение) настраивается с помощью групповой политики или редактирования реестра.

Политика находится в разделе Конфигурация компьютера ->Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов –> Узел сеансов удаленных рабочих столов –> Подключения (Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections) и называется «Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов» (Set rules for remote control of Remote Desktop Services user sessions).

Вместо включения политики можно выставить значение dword ключа с именем Shadow в ветке реестра HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services. Допустимые значения:

  • 0 – запретить удаленное управление;
  • 1 — полный контроль с разрешения пользователя;
  • 2 — полный контроль без разрешения пользователя;
  • 3 — наблюдение за сеансом с разрешения пользователя;
  • 4 — наблюдение за сеансом без разрешения пользователя.

По умолчанию данный ключ не задан и теневое подключение осуществляется в режиме полного контроля с разрешения пользователя.

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

Запросим удаленно список сессий на рабочей станции Windows 10 командой:

qwinsta /server:192.168.11.60

Как вы видите, на данном компьютере имеется одна консольная сессия пользователя с идентификатором >

Итак, попробуем удаленно подключиться к сессии пользователя через теневое подключение. Выполните команду:

Mstsc /shadow:1 /v:192.168.11.60

На экране пользователя Windows 10 появится запрос:

Если пользователь разрешит соединение, вы подключитесь к его консольному сеансу и увидите его рабочий стол. Вы будете видеть все действия пользователя, но не сможете взаимодействовать с его сессией.

Читайте также:  Linux bash работа строками

Если проверить сетевые соединения с помощью TCPView, можно увидеть, что взаимодействие идет через RemoteRPC (а не по протоколу RDP с портом TCP 3389). Т.е. для подключения используется случайный TCP порт из высокого диапазона RPC. На стороне подключающегося компьютера соединение устанавливает mstsc.exe, на стороне клиента подключение обрабатывает rdpsa.exe или rdpsaproxy.exe (в зависимости от билда Windows 10). Поэтому на клиенте должен быть включен RemoteRPC:

Функционал теневого подключения Remote Desktop Shadowing работает в Windows 10 / 8.1 и Windows Server 2012 R2 /2016. Чтобы теневое подключение работало на клиентах с Windows 7 SP1 (Windows Server 2008 R2) нужен RDP клиент версии 8.1 – поэтому придется установить обновление KB2830477 (требует наличия установленных KB2574819 и KB2857650).

Таким образом Remote Desktop Shadowing можно использовать как аналог Remote Assistance (Удаленный помощник) или TeamViewer для локальной или корпоративной сети.

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

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

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

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

  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).

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

Authentication: – успешная или неуспешная аутентификация пользователя на сервере. Журнал Windows -> Security. Соответственно нас могут интересовать события с EventID – 4624 (успешная аутентификация — An account was successfully logged on) или 4625 (ошибка аутентификации — An account failed to log on). Обратите внимание на значение LogonType в событии. При входе через терминальную службу RDP — LogonType = 10 или 3. Если LogonType = 7, значит выполнено переподключение к уже имеющейся RDP сессии.

Читайте также:  Wo mic драйвера x64 windows 10

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

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

Get-EventLog security -after (Get-date -hour 0 -minute 0 -second 0) | ? <$_.eventid -eq 4624 -and $_.Message -match 'logon type:\s+(10)\s'>| Out-GridView

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

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

Событие с EventID 4799 в журнале 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 пользователя был завершен.

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

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

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

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

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

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

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

На RDP-клиенте логи не такие информационные, основное чем часто пользуются информация об истории RDP подключений в реестре.

Оцените статью