Несколько одновременных RDP сессий пользователей в Windows 10 и 11

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

Достаточно разрешить RDP доступ и подключиться к компьютеру с помощью любого клиента. Но есть ограничение на количество одновременных RDP сессии – допускается одновременная работа только одного удаленного пользователя.

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

Во всех десктопных версиях Windows (включая Win 10 и 11) есть ряд ограничений на использование службы удаленного рабочего стола

  1. Вы можете удаленно подключаться по RDP только к старшим редакциям Windows (Professional, Enterprise). В домашних редакциях (Home/Single Language) RDP доступ заблокирован;
  2. Поддерживается только одно одновременное RDP подключение. При попытке запустить вторую RDP-сессию, пользователю будет предложено завершить активное подключение;
  3. Если пользователь работает за консолью компьютера (локально), то при удаленном подключении по RDP, его локальный сеанс будет отключен (заблокирован). Правильно и обратное утверждение: удаленный RDP сеанс принудительно завершается, если пользователь входит через консоль Windows.

Ограничение на количество одновременных RDP подключений в Windows является не техническим, но программным и лицензионным. Таким образом Microsoft запрещает создавать терминальный RDP сервер на базе рабочей станции для одновременной работы нескольких пользователей. Логика Microsoft проста: если вам нужен терминальный сервер — купите лицензию Windows Serverлицензии RDS CAL, установите и настройте роль Remote Desktop Session Host (RDSH).

Технически любая редакция Windows при наличии достаточного количества оперативной памяти может обслуживать одновременную работу нескольких десятков удаленных пользователей. В среднем на одну RDP сессию пользователя без учета запускаемых приложений требуется 150-200 Мб памяти. Т.е. максимальное количество одновременных RDP сессий в теории ограничивается только ресурсами компьютера.

Мы рассмотрим два способа убрать ограничение на количество одновременных RDP подключений к Windows 10 и 11: с помощью приложения RDP Wrapper и с помощью модификации системного файла termsrv.dll.

RDP Wrapper: разрешить несколько RDP сеансов в Windows

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

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

Перед установкой RDP Wrapper важно убедится, чтобы у вас использовалась оригинальная (непропатченная) версия файл termsrv.dll. Иначе RDP Wrapper может работать не стабильно, или вообще не запускаться

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

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

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

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

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

После окончания установки запустите RDPConfig.exe. Скорее всего сразу после установки утилита покажет, что RDP wrapper запущен (Installed, Running, Listening), но не работает. Обратите внимание на красную надпись. Она сообщает, что данная версий Windows 10 (ver. 10.0.19041.1320) не поддерживается ([not supported]).

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

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

Вручную скопируйте содержимое данной страницы в файл «C:\Program Files\RDP Wrapper\rdpwrap.ini». Или скачайте файл с помощью PowerShell командлета Invoke-WebRequest (предварительно нужно остановить службу Remote Desktop):

Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"

Перезагрузите компьютер, запустите утилиту RDPConfig.exe. Проверьте, что в секции Diagnostics все элементы окрашены в зеленый цвет, и появилось сообщение [Fully supported]. На скриншоте ниже показано, что RDP Wrapper с данным конфигом прекрасно работает и в Windows 11.

Попробуйте подключиться к своим компьютерам несколькими RDP сессиями (воспользуйтесь любым RDP клиентом: mstsc.exe, rdcman и т.д.). Все получилось (можно даже использовать сохранённые RDP пароли)! Теперь ваша Windows 10 позволяет одновременно подключаться по RDP сразу двум (и более) удаленным пользователям.

Утилита RDPWrap поддерживается во редакциях Windows, таким образом из любой клиентской версии Windows можно сделать сервер терминалов.

Также из интересных возможностей RDP Wrapper можно выделить:

Ограничения на длительность RDP сессий можно настроить через GPO.

Не работает RDP Wrapper в Windows 10

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

Если утилита в окне статуса показывала [not supported], значит в файле rdpwrap.ini отсутствует конфигурация для вашей версии Windows. Обновите файл rdpwrap.ini как описано выше.

Если RDP Wrapper не работает после обновления файла rdpwrap.ini, попробуйте открыть файл rdpwrap.ini и найти в нем описание для вашей версии Windows. Как понять, есть ли поддержка вашей версии Windows в конфиг фафле rdpwrapper?

На скриншоте ниже показано, что для моей версии Windows 10 (10.0.19041.1320) есть две секции с описаниями:

[10.0.19041.1320]
…..
[10.0.19041.1320-SLInit]
…..

Если для вашей версии Windows нет секции в конфигурационном файле, попробуйте поискать в сети строки rdpwrap.ini для вашего билда. Добавьте найденные строки в самый конец файл.

Также при проблемах с RDPWrap вы можете открыть ветку в https://github.com/stascorp/rdpwrap/issues. Здесь же можно найти актуальные файлы rdpwrap.ini до момента обновления в официальном репозитории.

Если после установки обновлений безопасности или после апгрейда билда Windows 10, RDP Wrapper не работает, проверьте, возможно в секции Diagnostics присутствует надпись Listener state: Not listening.

rdpwinst.exe -u
rdpwinst.exe -i