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

29.4k

0

Удаленный рабочий стол на Windows — очень удобная опция для тех, кто не хочет ограничивать себя стационарным рабочим местом. Однако у нее есть ограничение: пользователь может быть только один, физически перед компьютером или удаленно. В части случаев это может быть неудобно.
Сегодня мы оставим без внимания актуальность и варианты использования удаленных рабочих столов, ведь, раз уж вы читаете эти строки, доказывать их полезность вам, скорее всего, не нужно вовсе. Вместо этого мы сосредоточимся на том, как обойти обозначенное выше ограничение и создать более одного подключения одновременно.
Заметим, ограничение носит исключительно программный характер и фактически удаленных пользователей может быть столько, насколько хватит вычислительной мощности вашего ПК. Кроме прочего, это означает, что решаясь на все описанные ниже манипуляции вы нарушаете условия лицензионного соглашения и будете выполнять их на свой риск и страх.
Что ж, это была минутка теории, а теперь пора переходить к практике, где мы разберем, как можно настроить одновременную работу нескольких RDP на Windows.


Как именно работают ограничения?

Первым делом уточним, что работают удаленные рабочие столы исключительно на версиях Windows Pro и выше, тогда как на домашней (Windows Home) эта опция не доступна в принципе. Также, как мы уже уточнили выше, подключение может быть только одно: либо локально на интересующем нас ПК, либо удаленно, две и более сессии пользователям недоступны. При попытке нового подключения, система выдаст предупреждение о том, что текущий пользователь будет отключен и запросит подтверждение для продолжения работы.


rdp1.jpg


Как обойти?

1 способ: сторонние программы

Надо признать, оба описанных способа имеют свои ограничения и особенности, которые мы также уточним, но именно этот метод кажется нам наименее проблемным и простым как при подключении, так и для дальнейшего использования.
Для одновременного подключения нескольких RDP мы будем использовать программу RDP Wrapper. Это OpenSource-проект, следить за которым вы можете на GitHub. Кроме нескольких RDP сессий, данная программа позволит реализовать удаленный доступ, в том числе, на Windows Home, и если необходимо, под одной учетной записью, скрыть список пользователей на экране приветствия, создать теневое RDP подключение и другое.
Чтобы установить и подготовить программу к использованию, выполняем следующие шаги:

  1. Скачиваем RDP Wrapper из репозитория GitHub по ссылке
  2. В получившемся архиве находим и запускаем файл install.bat, не забывая о правах администратора.
  3. После установки, обратим внимание на файл RDPConfig.exe (его вы найдете в том же архиве). Здесь нас интересует раздел Diagnostics, где все элементы должны быть окрашены в зеленый цвет. Если вместо [fully supported] вы видите [not supported], программа нуждается в обновлении. Нет возможности обновить полностью — скачайте отдельно файл rdpwrap.ini с ресурса разработчика и сохраните его по пути C:\Program Files\RDP Wrapper\rdpwrap.ini. Этот же способ нужно использовать для самых новых версий Windows.
  4. В качестве проверки, запускаем файл RDPCheck.exe или создаем удаленное подключение. Если все сделано правильно, две и более сессий будут работать параллельно.

Также сразу обратим внимание читателей, что антивирусы данную программу, мягко говоря, недолюбливают, считая её вредоносным ПО, будьте готовы.


2 способ: внутренняя модификация

Этот способ подходит для пользователей Windows 10 и не требует установки сторонних приложений, однако требует бОльших, по сравнению с первым вариантом, навыков работы, в частности, с командной строкой. Есть и еще одна сложность, правку файла termsrv.dll (а именно этим мы будем заниматься) придется повторять после каждой установки новой версии системы.
Итак, интересующий нас файл можно найти по пути C:\Windows\System32 и прежде чем мы начнем, желательно создать его резервную копию. Если все пройдет как надо — она не понадобится, а если нет — сбережет вам немало нервных клеток. Для этого делаем следующее: запускаем командную строку с правами администратора и вводим команду:

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

Кроме того, нам понадобится информация об установленной версии (билде) Windows 10. Это проще всего узнать, введя в PowerShell: “Get-ComputerInfo | select WindowsProductName, WindowsVersion”. Билд обозначается четырьмя цифрами, указывающими на год и месяц его выпуска. Впрочем, это скорее теоретические сведения, нас интересует лишь сам номер, его можно просто запомнить.

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

  1. Меняем владельца файла с 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".
  2. Даем группе администраторов полные права на файл командой: "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".
  3. Останавливаем службу Remote Desktop Service (TermService) при помощи команды: "Net stop TermService".
  4. Теперь переходим к собственно правке файла termsrv.dll. Для этого нам понадобится HEX редактор (скачиваем бесплатно из интернета) и немного внимания. В зависимости от билда, находим одну из строк, представленных в таблице ниже и заменяем её последовательностью “B8 00 01 00 00 89 81 38 06 00 00 90”, после этого сохраняем изменения.
  5. Запускаем TermService.

Версия

Строка

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

Если все сделано правильно, вы сможете использовать столько удаленных подключений, сколько вам понадобится. Если же что-то пойдет не так, вам нужно будет снова остановить упомянутую ранее службу TermService и восстановить сохраненный ранее файл при помощи команды

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

На этом все. Как видите, при подробном рассмотрении оба способа не так сложны как кажется поначалу, зато они могут значительно упростить вашу жизнь, если у вас потребность в удаленном доступе возникает часто. Все вопросы относительно описанных здесь методов, вы можете задать их в комментариях или нашем Telegram чате, а за новостями и обновлениями игр не забывайте следить на канале ТЕХМО.

Похожие посты

Регистрация прошла успешно