Найти в Дзене

RDP Wrapper в отказе? Или как я подружил терминальный сервис с костылём из PowerShell

RDP Wrapper — отличный инструмент, пока не натыкаешься на надпись [not supported] в RDPConf.exe. Знакомо? Я тоже решил, что «обновлю INI-файл — и всё заработает». Качаю актуальный rdpwrap.ini, заменяю, перезагружаю... А воз и ныне там. Стандартные советы не сработали? Добро пожаловать в клуб! На просторах Яндекса наткнулся на блог "Эникей на передержке". Автор предлагал патчить саму termsrv.dll — файл, отвечающий за RDP. Скрипт и команды: # Шаг 1: Останавливаем службу TermService
net stop termservice
# Шаг 2: Бэкап DLL на случай апокалипсиса
copy c:\Windows\System32\termsrv.dll termsrv.dll_old
# Шаг 3: Крадем права на файл (легально!)
takeown /F c:\Windows\System32\termsrv.dll /A
# Шаг 4: Разрешаем скриптам не быть изгоями
Set-ExecutionPolicy RemoteSigned
# Шаг 5: Запускаем магию
powershell -executionpolicy bypass -File "C:\Scripts\termsrv-patch.ps1"
# Шаг 6: Возвращаем службу к жизни если не ожила сама
net start termservice Важно! Скрипт модифицирует termsrv.dll, обходя
Оглавление

Проблема:

RDP Wrapper — отличный инструмент, пока не натыкаешься на надпись [not supported] в RDPConf.exe. Знакомо? Я тоже решил, что «обновлю INI-файл — и всё заработает». Качаю актуальный rdpwrap.ini, заменяю, перезагружаю... А воз и ныне там.

Стандартные советы не сработали? Добро пожаловать в клуб!

Решение №2: Танцы с termsrv.dll

На просторах Яндекса наткнулся на блог "Эникей на передержке". Автор предлагал патчить саму termsrv.dll — файл, отвечающий за RDP.

Скрипт и команды:

  1. Скачайте мой готовый набор (скрипт + инструкция) с Яндекс.Диска.
  2. Распакуйте архив в C:\Scripts\ (если папки нет — создайте).
  3. Запустите PowerShell от имени администратора и выполните:

# Шаг 1: Останавливаем службу TermService
net stop termservice

# Шаг 2: Бэкап DLL на случай апокалипсиса
copy c:\Windows\System32\termsrv.dll termsrv.dll_old

# Шаг 3: Крадем права на файл (легально!)
takeown /F c:\Windows\System32\termsrv.dll /A

# Шаг 4: Разрешаем скриптам не быть изгоями
Set-ExecutionPolicy RemoteSigned

# Шаг 5: Запускаем магию
powershell -executionpolicy bypass -File "C:\Scripts\termsrv-patch.ps1"

# Шаг 6: Возвращаем службу к жизни если не ожила сама
net start termservice

Важно!

  • После обновлений Windows патч может слететь — придется повторить ритуал.
  • Если система начнет капризничать, верните бэкап: copy termsrv.dll_old c:\Windows\System32\termsrv.dll /Y

Почему это работает?

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