Несколько одновременных RDP сесий в Windows 7, 8, 10 и 11

2024-05-17 22:07
392
Ця стаття на мовах: UA / RU

t.me


Стаття у розділах:

Десктопні ОС Програмне забезпечення

Зміст

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

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

В английской версии предупреждение такое:

Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?

Ограничения на количество RDP сессий в Windows

Во всех десктопных версиях Windows 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 (по умолчанию разрешает 2 активных RDP подключения). Если вам нужно большее количество одновременных сессий пользователей, нужно приобрести лицензии RDS CAL, установить и настроить роль Remote Desktop Session Host (RDSH) или полноценную RDS ферму.

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

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

  1. Использование RDP Wrapper.
  2. Модификация системного файла termsrv.dll.
  3. Апгрейд до редакции Windows 10/11 Enterprise for virtual desktops (multi-session).

Примечание. Все модификации операционной системы, описанные в этой статье, считаются нарушением лицензионного соглашения Windows, и вы можете использовать их на свой страх и риск. Прежде чем продолжить, проверьте, что в настройках Windows включен протокол Remote Desktop.

  1. Откройте панель настроек: Settings -> System -> Remote Desktop.
  2. Включите опцию Enable Remote Desktop.

По умолчанию RDP использует порт 3389, но при необходимости его можно заменить на любой другой, при этом обращаясь с другого компьютера обязательно после hostname или ip-адресса необходимо указать нестандартный порт через двоеточие. Например: 192.168.0.200:4561 

Или воспользуйтесь классической панелью управления:

  1. Выполните команду SystemPropertiesRemote.
  2. Перейдите на вкладку Remote Settings (Удаленный доступ).
  3. Включите опцию Allow remote connection to this computer (Разрешить удалённые подключения к этому компьютеру).

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

Open-source утилита RDP Wrapper Library позволяет использовать конкурентные RDP сессии в Windows 10/11 без необходимости замены системного файла termsrv.dll.

RDP Wrapper функционирует как прослойка между менеджером управления службами (Service Control Manager, SCM) и службой терминалов (Remote Desktop Services). Она не вносит изменений в файл termsrv.dll, а просто загружает его с изменёнными параметрами.

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

(последняя доступная версия RDP Wrapper Library v1.6.2). Утилита не обновляется с конца 2017 года, но её можно использовать на всех версиях Windows 10 и 11. Для работы утилиты в современных версиях Windows достаточно обновить конфигурационный файл rdpwrap.ini.

Большинство антивирусов определяют RDP Wrapper как потенциально опасную программу. Например, встроенный Microsoft Defender антивирус классифицирует программу как PUA:Win32/RDPWrap (Potentially Unwanted Software) с низким уровнем угрозы. Если настройки вашего антивируса блокируют запуск RDP Wrapper, нужно добавить его в исключения

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

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

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

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

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

Причина в том, что в конфигурационном файле rdpwrap.ini отсутствует секция с настройками для вашей версии (билда) Windows. Актуальную версию файла 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”

Start-Service termservice

Теперь попробуйте установить несколько одновременных RDP сессий с этим компьютером под разными пользователями (воспользуйтесь любым RDP клиентом: mstsc.exe, RDCMan, mRemoteNG и т.д.).

Можете проверить что на компьютере активны одновременно две RDP сессии (или более) с помощью команды:

qwinsta

rdp-tcp#0         user1                 1  Active

rdp-tcp#1         user2                 2  Active

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

В интерфейсе RDP Wrapper доступны следующие опции:

  • Enable Remote Desktop — включить или отключить Remote Desktop в Windows.
  • RDP Port — изменить стандартный номер порта удаленного рабочего стола TCP 3389.
  • Hide users on logon screen — скрыть список пользователей на экране приветствия.
  • Single session per user — разрешить несколько одновременных RDP сессий под одной учетной записью пользователя. Эта опция устанавливает параметр реестра fSingleSessionPerUser = 0 в ветке HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server. Также этот параметр можно настроить через опцию GPO Restrict Remote Desktop Services to a single Remote Desktop Services session в разделе Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections.
  • В секции Session Shadowing Mode вы можете настроить режим теневого подключения к рабочему столу пользователей Windows.

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

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

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

Во время установки обновлений Windows может обновиться версия файла termsrv.dll. Если в файле rdpwrap.ini отсутствует описание для вашей версии Windows, значит RDP Wrapper не может применить необходимые настройки. В этом случае в окне RDP Wrapper Configuration будет указан статус [not supported].

В этом случае нужно обновить файл rdpwrap.ini как описано выше.
Если RDP Wrapper не работает после обновления файла rdpwrap.ini, попробуйте открыть файл rdpwrap.ini и найти в нем описание для вашей версии Windows.
Как понять, есть ли поддержка вашей версии Windows в конфиг файле rdpwrapper?
На скриншоте ниже показано, что для моей версии Windows 11 (10.0.22621.317) есть две секции с описаниями:

[10.0.22621.3593]

...

[10.0.22621.3593-SLInit]

...

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

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

Попробуйте обновить ini файл, и затем переустановить службу:

rdpwinst.exe -u
rdpwinst.exe -i

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

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

The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.

Для решения этой проблемы вам нужно открыть редактор групповых политик gpedit.msc и внести изменения в следующие параметры:

  1. Откройте редактор групповых политик, нажав комбинацию клавиш Win+R, введите gpedit.msc и нажмите Enter.
  2. Выделите раздел Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключение.
  3. Найдите политику "Ограничить количество подключений" и включите ее.
  4. Измените значение этой политики на 999 999.

Это позволит увеличить ограничение количества одновременных подключений к удаленному рабочему столу на вашем компьютере.

Перезагрузите компьютер для обновления настроек GPO и применения новых параметров.

Модификация файла termsrv.dll для снятия ограничений RDP в Windows 10 и 11

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

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

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

Затем нужно стать владельцем файла. Проще всего это сделать из командной строки. Чтобы сменить владельца файла с TrustedInstaller на группу локальных администраторов с помощью команды:

takeown /F c:\Windows\System32\termsrv.dll /A

Должно появится сообщение: 

«SUCCESS: The file (or folder): «c:\Windows\System32\termsrv.dll» now owned by the administrators group».

Теперь с помощью icacls.exe предоставьте группе локальных администраторов полные права на файл termsrv.dll (Full Control):

icacls c:\Windows\System32\termsrv.dll /grant Administrators:F (или Администраторы в русской версии Windows).

Должно появится сообщение: 

"processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files".

Это позволит вам увеличить ограничение количества одновременных подключений к вашему робочему столу на вашем компьютере.

Теперь нужно остановить службу Remote Desktop Service (TermService) из консоли services.msc или из командной строки:

Net stop TermService

Вместе с ней останавливается служба Remote Desktop Services UserMode Port Redirector.

Чтобы узнать номер билда вашей Windows, выполните команду winver или следующую команды PowerShell:

Get-ComputerInfo | select WindowsProductName, WindowsVersion

В нашем случае установлена Windows 11 билд 23h2

Затем откройте файл termsrv.dll с помощью любого HEX редактора (к примеру, Tiny Hexer). В зависимости от билда нужно найти и заменить строку:

Версия WindowsНайти строкуЗаменить на
Windows 11 23H239 81 3C 06 00 00 0F 84 E1 AA 01 00

 

 

 

 

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

 

Windows 11 22H239 81 3C 06 00 00 0F 84 75 7A 01 00
Windows 10 22H239 81 3C 06 00 00 0F 84 85 45 01 00
Windows 11 RTM ( 21H2 22000.258)39 81 3C 06 00 00 0F 84 4F 68 01 00
Windows 10 x64 21H239 81 3C 06 00 00 0F 84 DB 61 01 00
Windows 10 x64 21H139 81 3C 06 00 00 0F 84 2B 5F 01 00
Windows 10 x64 20H239 81 3C 06 00 00 0F 84 21 68 01 00
Windows 10 x64 200439 81 3C 06 00 00 0F 84 D9 51 01 00
Windows 10 x64 190939 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 190339 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

 

 

Редактор Tiny Hexer не позволяет редактировать файл termsvr.dll напрямую из папки system32. Скопируйте его на рабочий стол, а после модификации замените исходный файл.

Например, для самой редакции Windows 11 x64 23H2 226315.3593 (версия файла termsrv.dll — 10.0.19041.1949) нужно открыть файл termsrv.dll в Tiny Hexer. Затем найдите строку:

39 81 3C 06 00 00 0F 84 E1 AA 01 00

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

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

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

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

Преимущество способа отключения ограничения на количество RDP сессий в Windows путем замены файла termsrv.dll в том, что на него не реагируют антивирусы. В отличии от утилиты RDPWrap, которую многие антивирусов считают Malware/HackTool/Trojan. Основной недостаток — вам придется вручную править файл после каждого обновления билда Windows (или при обновлении версии файла termsrv.dll в рамках ежемесячных кумулятивных обновлений).

В этой статье мы рассмотрели способы, позволяющие снять ограничение на количество одновременных RDP подключений пользователей, и запустить бесплатный терминальный сервер на клиентской Windows 10 или 11. У каждого из этих способов есть свои преимущества и недостатки. Какой из них использовать — решать вам.


Сподобалась стаття? Подякуйте автору