Что делать, если не работает RDP Wrap после обновления Windows 10
Способ 1: Замена файла конфигурации
Проблемы с работой рассматриваемой программы возникают вследствие обновлений системной библиотеки termsrv.dll. Под каждую её версию RDP Wrap нужно конфигурировать заново. К счастью, разработчики приложения заботятся об этом сами и после каждого мажорного апдейта выпускают новый конфигурационный файл. Алгоритм его замены выглядит следующим образом:
- Перейдите по ссылке в репозиторий приложения на GitHub.
Репозиторий на GitHub
Откройте каталог res двойным щелчком левой кнопки мыши. Найдите внутри ссылку с именем rdpwrap.ini и кликните по ней правой кнопкой мыши. Выберите пункт «Сохранить ссылку как…» (в других браузерах – «Сохранить объект как…» или похожее по смыслу).
Сохраните файл rdpwrap.ini в любое подходящее место на компьютере.
После запуска списка служб найдите запись «Службы удалённых рабочих столов», выделите её и нажмите «Остановить службу».
Далее откройте «Проводник» и перейдите по следующему адресу:
C:\Program Files\RDP Wrapper
Скопируйте полученный ранее rdpwrap.ini и вставьте в эту папку.
Подтвердите замену файла.
Перезагрузите компьютер, после чего откройте монитор враппера с именем RDConfig.
Проверьте строку «Listener» – если надпись в ней гласит «Fully supported», проблема устранена.
Данный метод является предпочтительным, и к следующему следует прибегать только в случае отсутствия его эффективности.
Способ 2: Настройка в «Редакторе групповых политик»
Пользователи Windows 10 редакций Профессиональная и Корпоративная могут решить рассматриваемую проблему настройкой определённого параметра в «Редакторе групповых политик».
- Вызовите средство «Выполнить» (шаг 3 Способа 1), в котором введите запрос gpedit.msc.
Перейдите по следующему пути:
Конфигурация компьютера/Административные шаблоны/Компоненты Windows/Службы удаленных рабочих столов/Узел сеансов удаленных рабочих столов/Подключения
Дважды кликните по политике «Ограничить количество подключений».
Установите положение «Включено», после чего измените значение максимального количество подключений на 999999 . Сохраните изменения последовательным нажатием на кнопки «Применить» и «ОК».
Закройте «Редактор групповых политик» и перезагрузите компьютер.
Описанная выше манипуляция позволит решить проблему, но является потенциально небезопасной, поэтому используйте её в самом крайнем случае.
Не работает RDP в целом
Порой вышеприведённые действия не приводят к желаемому результату. В этом случае отметим, что скорее всего дело уже не во враппере и библиотеке. Действуйте так:
- Сначала проверьте параметры брандмауэра, как системного, так и стороннего, и разрешите в нём соединение по РДП.
Урок: Настройка брандмауэра на Windows 10
Также стоит проверить состояние портов – не исключено, что требуемый для работы нужного протокола просто закрыт.
Подробнее: Как открыть порты на Windows 10
После этого проверьте целостность компонентов ОС и восстановите их одним из возможных способов, если в этом появится необходимость.
Урок: Проверка целостности и восстановление системных файлов в Windows 10
Теперь вам известно, как нужно действовать в ситуации, когда RDP Wrapper перестал работать после обновления Windows 10, и что делать, если подключение по этому протоколу не работает в целом.
Исправляем недостатки RDP с помощью RDP Wrapper Library
У настольных операционных систем Microsoft есть некоторые ограничения, связанные с работой службы удаленных рабочих столов. Так во первых, поддержка серверной части (RDP Host) есть только в старших редакциях Windows (не ниже Professional). В домашних редакциях этот функционал отключен, поэтому подключиться к младшим версиям Windows по RDP невозможно.
И во вторых, количество параллельных RDP-сессий ограничено. Допускается только одно одновременное подключение по RDP, а при попытке открыть вторую RDP-сессию система выдаст сообщение о том, что в системе уже находится один пользователь и предложит его выкинуть завершить его сеанс.
Обойти эти ограничения позволит проект RDP Wrapper Library by Stas’M. RDP Wrapper работает как прослойка между менеджером служб (Service Control Manager, SCM) и службой удаленных рабочих столов. При этом, в отличии от других решений подобного рода, он не подвергает изменениям файл termsrv.dll (библиотека, используемая службой Remote Desktop Services), что позволяет не опасаться обновлений Windows.
Судя по официальному сайту, проект активно живет и развивается. На данный момент выложена версия 1.5 от 2014.12.11, для которой заявлена поддержка новейших ОС, включая Windows 10 Technical Preview. Также доступны исходники, так что при желании можно самостоятельно собрать проект.
Загрузить RDP Wrapper можно со страницы программы в репозитории GitHub. В архив входят следующие компоненты:
• RDPWinst.exe — инсталлятор, с помощью которого производится установка и удаление RDP Wrapper;
• RDPConf.exe — утилита для настройки параметров подключения;
• RDPCheck.exe — утилита для локальной проверки работы RDP;
• install.bat и uninstall.bat — bat-файлы для удобства установки\удаления программы.
Для установки программы надо открыть командную строку с правами администратора, перейти в директорию с распакованными файлами и запустить install.bat. Все остальное, включая настройку исключений на файерволле, установщик сделает сам.
Дополнительно можно запустить утилиту RDPConf.exe, которая позволяет включать\отключать доступ, а также настраивать основные параметры подключения (порт, количество сессий на пользователя, тип аутентификации и пр.).
Ну и в качестве проверки я открыл на компьютер с установленной Windows 7 Home Basic две RDP-сессии для двух разных пользователей.
Что еще можно сказать. Проект однозначно полезный, в некоторых ситуациях даже незаменимый. Из минусов же — используя RDP Wrapper вы скорее всего нарушаете лицензионное соглашение.
Дополнение 04.05.2019.
Для корректной работы на Windows 10 1809 требуется обновить файл конфигурации rdpwrap.ini. В него надо добавить следующие строчки:
[10.0.17763.292]; Patch CEnforcementCore::GetInstanceOfTSLicense
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=AFAD4
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=77A11
LocalOnlyCode.x64=jmpshort
; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled
SingleUserPatch.x86=1
SingleUserOffset.x86=4D665
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=1322C
SingleUserCode.x64=Zero
; Patch CDefPolicy::Query
DefPolicyPatch.x86=1
DefPolicyOffset.x86=4BE69
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=17F45
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
; Hook CSLQuery::Initialize
SLInitHook.x86=1
SLInitOffset.x86=5B18A
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=1ABFC
SLInitFunc.x64=New_CSLQuery_Initialize
И в конец ini файла дополнительно надо добавить строки:
[10.0.17763.292-SLInit]bInitialized.x86 =CD798
bServerSku.x86 =CD79C
lMaxUserSessions.x86 =CD7A0
bAppServerAllowed.x86 =CD7A8
bRemoteConnAllowed.x86=CD7AC
bMultimonAllowed.x86 =CD7B0
ulMaxDebugSessions.x86=CD7B4
bFUSEnabled.x86 =CD7B8
bInitialized.x64 =ECAB0
bServerSku.x64 =ECAB4
lMaxUserSessions.x64 =ECAB8
bAppServerAllowed.x64 =ECAC0
bRemoteConnAllowed.x64=ECAC4
bMultimonAllowed.x64 =ECAC8
ulMaxDebugSessions.x64=ECACC
bFUSEnabled.x64 =ECAD0
В конце файла обязательно пустая строка.
Сервер терминалов на Windows 10
Существует популярная и удобная возможность сделать из обычной, не серверной версии windows 10 терминальный сервер. После настройки к обычному компьютеру с windows на борту смогут одновременно подключаться несколько пользователей по rdp и работать. Наиболее популярное применение такого решения — работа нескольких пользователей с файловой базой 1С.
Введение
Ранее я описывал способ, как сделать терминальный сервер из Windows 7. Сейчас актуальна современная операционная система Windows 10. В связи с тем, что поддержка Windows 7 уже закончена, всем так или иначе со временем придется работать в Windows 10, даже если предыдущая версия вас полностью устраивает.
Полезная возможность сделать из обычной Window 10 терминальный сервер. Ранее я не один раз использовал эту функцию для работы в файловой 1С нескольких человек одновременно. Для небольшого коллектива из нескольких сотрудников это вполне удобно и оправданно, так как покупать полноценный сервер и серверную ОС для таких задач нецелесообразно.
Сразу сделаю важное замечание. Я не рекомендую использовать сервер терминалов на основе windows 10 там, где критично, чтобы все работало стабильно и простой недопустим. Часто после обновлений слетает настроенный функционал и восстановить его работу не всегда получится быстро. Имейте это ввиду.
Превращаем Windows 10 в сервер терминалов
Использовать будем привычное средство, которое хорошо себя зарекомендовало в Windows 7 — RDP Wrapper Library by Stas’M. Скачивайте последнюю версию либо с сайта создателя, либо с githab — https://github.com/stascorp/rdpwrap/releases. Последняя версия от 2017 года и из-за этого возникает множество проблем во время настройки, о которых я расскажу далее. Скорее всего у вас не заработает терминальный сервер, если вы возьмете только предложенный дистрибутив.
Архив состоит из нескольких файлов:
Настраивать терминальный сервер будем на следующей системе:
Это достаточно старый LTSB дистрибутив со всеми установленными обновлениями на момент актуализации статьи. Взял специально для примера эту не самую свежую, но и не сильно старую версию, которая все еще поддерживается.
Загружайте архив и распаковывайте его в папку. Затем запускаете командную строку с правами администратора. Чтобы это сделать, нажимаете Пуск -> Все приложения:
Ищите в самом низу раздел Служебные — Windows, в нем приложение Командная строка, запускаете ее от имени администратора:
В командной строке переходите в папку с распакованной программой с помощью команды cd и запускаете файл install.bat:
После успешной установки увидите информацию:
Создавайте новых пользователей, добавляйте их в группу Пользователи удаленного рабочего стола и проверяйте. Если получится и все заработает сразу — вам повезло. Пользуйтесь.
Если ничего не помогает и у вас никак не работает терминальное подключение для других пользователей, давайте разбираться дальше, в чем тут дело.
Не работает терминальный сервер в Windows 10
Если у вас изначально не заработал терминальный сервер на windows 10 и количество rdp подключений ограничено одним. Либо если у вас после обновление сломался терминальный доступ, то давайте разбираться, что с этим делать.
Для начала запустите утилиту RDPConf.exe и посмотрите ее вывод.
Значение listener state [not supportet] намекает на то, что у нас проблемы и rdp wrapper не работает. Проблема тут в том, что практически под каждую версию Windows 10 нужен свой файл конфигурации rdpwrap.ini. Так как автор давно забросил свою программу, автоматически эти конфигурации не обновляются. Их нужно либо писать самому, если понимаешь, как именно, либо искать где-то в интернете. Проще всего посмотреть в обсуждении проблем в репозитории на github — https://github.com/stascorp/rdpwrap/issues. Либо еще один вариант — отдельный репозиторий только с конфигурациями — https://github.com/fre4kyC0de/rdpwrap.
Для того, чтобы на моей версии windows 10 заработал терминальный сервер, я пошел в указанный выше репозиторий и нашел там файл конфигурации под свою версию системы. Я взял содержимое этого файла и добавил его в существующий файл C:\Program Files\RDP Wrapper\rdpwrap.ini в самый конец.
После этого запустил еще раз RDPConf.exe.
Статус изменился на [fully supported] . Теперь нужно перезагрузить компьютер. После этого запустите утилиту RDPCheck.exe и убедитесь, что можно подключиться второй учетной записью к компьютеру.
У меня заработал терминальный доступ к windows 10 через 2 разные учетные записи.
Как починить rdpwrap после обновления windows
Если вы нигде не можете найти файл конфигурации rdpwrap.ini под вашу версию системы, то можно попробовать сделать следующий трюк. В некоторых случаях это помогает. По крайней мере у меня так иногда получалось.
Вам нужно найти рабочую конфигурацию под максимально близкую к вам версию. Далее просто в текстовом редакторе поменяйте указанную там версию на свою. Если разница в версиях не сильно большая, может помочь. Я видел в issues на гитхабе информацию о том, что получалось сразу же после поломки терминального доступа после очередного обновления, отредактировать конфиг под новую версию и все снова продолжало работать.
Так же в одном из обсуждений на github была предложена утилита с автоматическим обновлением rdpwrap.ini. Называется Automatic RDP Wrapper installer and updater — https://github.com/stascorp/rdpwrap/pull/859. Описание и инструкция по использованию есть внутри архива. Судя по отзывам, штука неплохая, работает. Если кратко, то пользоваться так:
- Скачиваем архив
- Распаковываем в Program Files\RDP Wrapper
- От имени администратора запускаем Program Files\RDP Wrapper\autoupdate.bat
- Проверяем конфигурацию через RDPConf.exe и пробуем подключаться.
В целом про превращение windows 10 в сервер терминалов для одновременного подключения и работы нескольких пользователей по rdp у меня все. Все очень легко и просто, можно использовать по необходимости для решения прикладных задач.
Часто задаваемые вопросы по теме статьи (FAQ)
Однозначно, да. У Microsoft есть отдельный продукт и отдельная программа лицензирования для работе в терминале. И все это стоит немалых денег. Так что создавая терминал из windows 10 вы точно нарушаете условия лицензионного соглашения.
Надежнее всего отложить обновление и подождать, пока не появится rdpwrap.ini под новую версию обновленной системы. После этого можно самому обновиться и обновить конфигурационный файл.
Судя по всему, да. Обновлений давно не было. Меняются только конфигурационные файлы rdpwrap.ini, которые обновляет сообщество. Сама программа при этом не обновляется.
Да, не работает. Если вы все сделали правильно, то можно работать как локально, так и удаленно одновременно разным пользователям. Если одновременно не получается работать больше, чем одному пользователю, значит терминальный режим в windows 10 не работает.
Я не рекомендую так делать. В настоящее время это очень опасно. В протоколе rdp регулярно находят уязвимости, через которые на ваш компьютер может попасть, к примеру, шифровальщик. Необходимо учитывать эти риски и время от времени обновляться, либо полностью закрывать несанкционированный доступ к компьютеру.
Заключение
Нужно понимать, что подобное использование Windows 10 скорее всего является нарушающим лицензионное соглашение. Хотя я не знаю, каким именно пунктом и условием это регламентируется, но наверняка что-то подобное в лицензионном соглашении есть, так как подобный способ распространен еще со времен XP. Имейте это ввиду, если будете настраивать в компании, которая следит за лицензионной чистотой.