Как установить несколько сеансов RDP в Windows 10/11

Как установить несколько сеансов RDP в Windows 10/11

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

Удаленные пользователи могут подключаться к своим компьютерам с ОС Windows 10 и Windows 11 через службы удаленных рабочих столов (RDP). Достаточно включить RDP в настройках устройства и подключиться к компьютеру с помощью любого клиента удаленного рабочего стола, такого как MSTSC. Но существует ограничение на количество одновременных сеансов RDP – одновременно может работать только один удаленный пользователь. Если вы попытаетесь открыть второй сеанс RDP, появится предупреждение с просьбой отключить сеанс первого пользователя.


Изменения от 04.07.2023 г.

Настройка службы RDP на Windows 10

RDP работает только на Windows 10/11 Pro, в Home версии отключены нужные системные компоненты. Кроме этого, потребуется защитить паролем вашу учетную запись.


Включение доступа и добавление пользователей.

Откройте Пуск и нажмите на шестеренку Параметры.


Откройте раздел с настройкой системы.


Далее перейдите к настройке удаленного рабочего стола.

Включить удаленный рабочий стол.


Перейти в настройки электропитания, отключить переход компьютера в спящий режим.


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


Добавляем еще пользователей.


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



На самом деле, количество одновременных подключений RDP в системе Windows ограничено лицензией, а не каким-либо техническим аспектом. Таким образом, это ограничение не позволяет создать терминальный RDP-сервер на базе компьютера с системой Windows 10/11. Логика компании Microsoft проста, если вам нужен сервер терминалов – купите лицензию Windows Server, RDS CALs, установите и настройте роль сервера сеансов удаленного рабочего стола.

Но технически, любая версия Windows, с достаточным объемом оперативной памяти может поддерживать одновременную работу нескольких удаленных пользователей. В среднем, для одного сеанса пользователя, требуется около 200 МБ оперативной памяти (без учета запущенных приложений). Т.е. максимальное количество одновременных сеансов RDP теоретически ограничено только компьютерными ресурсами.

Рассмотрим два способа разрешить одновременные RDP-подключения в Windows 10/11:

  • с помощью RDP Wrapper
  • исправления библиотеки termsrv.dll


RDP Wrapper

Проект RDP Wrapper – ПО с открытым исходным кодом, позволяет включить несколько сеансов RDP в Windows 10 без замены файла termsrv.dll. Этот инструмент работает как связующее звено между SCM (Service Control Manager) и службами удаленного рабочего стола. RDPWrap позволяет включить не только поддержку нескольких одновременных RDP-подключений, но и создать RDP-сервер в Windows Home. RDP Wrapper не вносит никаких изменений в termsrv.dll файл, это просто загрузка библиотеки termsrv с измененными параметрами.

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

Вы можете загрузить RDP Wrapper из репозитория GitHub https://github.com/binarymaster/rdpwrap/releases (последняя доступная версия библиотеки RDP-оболочки - v1.6.2).

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

  • RDPWinst.exe - библиотека-оболочка RDP для установки/удаления программы
  • RDPConf.exe - инструмент настройки оболочки RDP
  • RDPCheck.exe - утилита проверки RDP (Local RDP Checker)
  • Install.bat, uninstall.bat, update.bat - пакетные файлы для установки, удаления и обновления оболочки RDP


Для установки оболочки необходимо запустить файл Install.bat с правами администратора.



RDPWrap не работает в Windows 10

После завершения установки запустите RDPConfig.exe . Скорее всего, сразу после установки инструмент покажет, что оболочка RDP запущена (установлена, запущена), но не работает. Обратите внимание на красное предупреждение [not supported]. В нем сообщается, что эта версия Windows 10 (версия 10.0.19041.1387) не поддерживается оболочкой RDP.



Дело в том, что для каждой версии Windows 10/11 должно быть описание в конфигурационном файле rdpwrap.ini. В текущем конфигурационном файле просто нет никаких настроек для вашей сборки Windows.

Текущую версию файла rdpwrap.ini можно загрузить здесь: https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini

Во всех источниках в интернете находятся советы, что необходимо скопировать новый файл rdpwrap.ini в “C:\Program Файл Files\RDP Wrapper\rdpwrap.ini” и перезапустить службу TermService. Но у меня это ни разу не получилось, ввиду того, что при перезапуске службы, оригинальный файл rdpwrap.ini восстанавливался на место нового.

Немного поискав решение этой проблемы, наткнулся на файл автоматического обновления rdpwrap.ini:

Необходимо скопировать файлы RDPWinst.exe, RDPConf.exe, RDPCheck.exe и autoupdate.bat в каталог C:\Program Файл Files\RDP Wrapper\ и запустить autoupdate.bat.

После завершения установки запустите RDPConfig.exe


Все работает!



Обновление Параметров Групповой политики

Количество подключений к компьютеру может быть ограничено правилами групповой политики.

В этом случае вы можете использовать редактор локальной групповой политики (gpedit.msc), чтобы включить политику “Ограничить количество подключений” в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения –> Ограничить количество подключений. Измените его значение на 999999.



Модификация Termsrv.dll

Второй, более трудозатратный метод – изменение файла Termsrv.dll. для этого нужно сделать копию файла, затем нужно стать владельцем файла.

Для начала, остановите службу удаленного рабочего стола (TermService) из командной строки:
Net stop TermService

Чтобы изменить владельца файла с TrustedInstaller на локальную группу администраторов нужно выполнить команду:
takeown /F c:\Windows\System32\termsrv.dll /A

Теперь предоставьте локальной группе администраторов разрешения на полный контроль над termsrv.dll файл с использованием icacls.exe:
icacls c:\Windows\System32\termsrv.dll /grant Администраторы:F

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

Версия Windows Строка поиска

Windows 11 RTM (21H2 – 22000.258)

39 81 3C 06 00 00 0F 84 4F 68 01 00

Windows 10 x64 22H2 19045.2486

39 81 3C 06 00 00 0F 84 DB 61 01 00

Windows 10 x64 21H2

39 81 3C 06 00 00 0F 84 85 45 01 00

Windows 10 x64 21H1

39 81 3C 06 00 00 0F 84 2B 5F 01 00

Windows 10 x64 20H2

39 81 3C 06 00 00 0F 84 21 68 01 00

Windows 10 x64 2004

39 81 3C 06 00 00 0F 84 D9 51 01 00

Windows 10 x64 1909

39 81 3C 06 00 00 0F 84 5D 61 01 00

Windows 10 x64 1903

39 81 3C 06 00 00 0F 84 5D 61 01 00

Windows 10 x64 1809

39 81 3C 06 00 00 0F 84 3B 2B 01 00

Windows 10 x64 1803

8B 99 3C 06 00 00 8B B9 38 06 00 00

Windows 10 x64 1709

39 81 3C 06 00 00 0F 84 B1 7D 02 00


Строка замены
B8 00 01 00 00 89 81 38 06 00 00 90


Данную таблицу я нашел на просторах интернета. Проверка данного метода в полевых условиях привела к тому, что я не нашел данную последовательность в своем файле termsrv.dll.

Но если понять суть, то все решается достаточно легко. Необходимо искать последовательность: 39 81 3C 06 00 00 0F 84, последние 4 байта не особо важны. Я нашел последовательность 39 81 3C 06 00 00 0F 84 73 55 01 00


Замена на
B8 00 01 00 00 89 81 38 06 00 00 90


Обновление от 27.01.2023 г.

Вышло новое обновление Windows 10 22H2 версия сборки: 19045.2486 и 19045.2604
Версия файла termsrv.dll: 10.0.19041.2075


Открываем файл в WinHex, находим исходную последовательность: 39 81 3C 06 00 00 0F 84 85 45 01 00.


Меняем на строку замены.


Обновление от 04.07.2023 г.

Скачать измененный файл termsrv.dll для конкретной версии Windows 10 можно в данной таблице.


Версия Windows Скачать termsrv.dll

Windows 10 x64 22H2 сборка 19045.2486 и 19045.2604

termsrv.dll

Windows 10 x64 22H2 сборка 19045.3086

termsrv.dll

Сохраните модифицированный файл и запустите службу TermService.
Если что-то пойдет не так, остановите службу и замените измененный termsrv.dll файл с оригинальной версией. В моем случае модификация файла помогла включить несколько сеансов RDP.

Преимущество метода включения нескольких сеансов RDP в Windows 10 или 11 путем замены termsrv.dll файл заключается в том, что антивирусы на него не реагируют, в отличие от RDPWrap, который обнаруживается многими антивирусами как вредоносное ПО.

Основным недостатком является то, что вам придется вручную редактировать termsrv.dll файл при каждом обновлении сборки Windows 10/11. И если вы используете RDPWrap, вам также потребуется обновить файл rdpwrap.ini после установки обновлений Windows.