Делаем из Windows 8.1 сервер терминалов


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

Windows имеет в своем составе проприетарный протокол RDP, который позволяет подключиться к любому компьютеру под управлением «окон», если на нем включена данная функция. Казалось бы, ввел команду mstsc, там уже ввел параметры ip и иные данные и пользуйся удаленным компьютером.

Однако никто не отменял всякие ограничения десктопных версий. В клиентских версиях Windows можно единовременно работать только одному пользователю, будь то локальный или удаленный. Хотите большего – пожалуйста, разворачивайте в организации Windows Server, покупайте на него  лицензии сервера терминалов и пользуйтесь подобным решением. Все легально и просто. Но стоит денег, причем, немалых.

Вторым вариантом мог бы стать Linux сервер с развернутым на нем xRDP и запуском на нем многих Windows программ под Wine. Но нужно понимать, что далеко не все программы запустятся на нем,  особенно те, которые используют Direct X, все равно скорость работы такой системы будет оставлять лучшего. Но зато затраты будут минимальны. И все легально.

Тем не менее, когда нужно пользоваться всего парой-тройкой программ по удаленке и то непостоянно, то приведенные выше примеры просто подобны стрельбе из пушки по воробьям. Гораздо проще из десктопной версии Windows патчем сделать многопользовательский сервер терминалов.

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

Наверняка вы слышали, что в основе серверных операционок от Microsoft  лежит тоже самое ядро, что и в десктопных версиях. Да, оно дополнено и переработано с учетом специфики, но суть остается такой же. Я просто написал это к тому, чтобы вы поняли, почему описанный способ будет работать без проблем.

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

Но только если в случае с Linux в терминальный сервер можно превратить обычный десктопный ПК с такой же версией ОС, то в Windows это не позволяет. Тем не менее, это обходится достаточно читерским способом – патчится библиотека, отвечающая за терминальный сервер.

Итак, патч предполагает собой замену оригинального системного файла %SystemRoot%\System32\termsrv.dll (библиотека, используемая службой Remote Desktop Services).

Перед заменой системной библиотеки создадим резервную копию файла termsrv.dll командой:

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

Теперь, если что-то пойдет не так, всегда можно вернуться к начальной конфигурации, заменив текущий файл оригинальным termsrv.dll_old

Скачайте нужный архив для своей версии Windows. Для 32 разрядной Windows 8.1 можете скачать здесь, для 64 битной –здесь. Не забудьте переименовать файл!

В Windows 8 предварительно нужно изменить значение следующих ключей в ветке реестра HKLM\System\CurrentControlSet\Control\Terminal Server\:

  • fDenyTSConnections (DWORD) —0
  • fSingleSessionPerUser (DWORD) — 0

Затем переходим в каталог C:\Windows\System32, находим файл termsrv.dll и открываем его свойства.

Нам нужно перейти во вкладку «Безопасность» и нажать кнопку «Изменить». В списке доступа найдите группу локальных администраторов и предоставьте ей полные права на файл.

Следующий шаг перед заменой файла библиотеки, открыть консоль управления службами (services.msc) и остановить службу Удаленных рабочих столов (Remote Desktop Services)

Теперь нужно скопировать скачанный вами файл termsrv.dll  в C:\Windows\System32 с заменой файла и запустить службу удаленных  рабочих столов. Перезагрузите компьютер.

Не забудьте проверить, что вы разрешили подключение к вашему компьютеру по RDP. Если вы все сделали  правильно и ошибок система не выдала, то, поздравляю, вы только что сделали из Windows 8.1  Pro свой сервер терминалов!

Терминальный сервер и Windows 10

Для тех пользователей, кто обновился до Windows 10 и хочет из нее сделать сервер терминалов, у меня есть отличная новость  -описанный способ в статье применим к этой операционке. Так что вы спокойно можете сделать из Windows 10 сервер терминалов

Комментарии

11 коммент. на “Делаем из Windows 8.1 сервер терминалов”
  1. Виктор:

    Очень хорошая статья… На свой страх и риск пропатчил этим файлом Виндовс 10 и каким было мое удивление когда все завелось и без глюков… рекомендую дополнить статью по поводу Вин 10

  2. Serg:

    Здравствуйте! Способ работает со всеми редакциями Win 8?

  3. Sewell:

    Все работает! Спасибо друг, помог решить реально наболевшую проблему для меня! Win 8.1 Prof x64/

  4. Андрей:

    Есть возможность сделать так, чтоб ключи eToken, установленные физически во вновьсозданный сервер терминалов, были доступны в RDP сессии?

  5. D:

    А как на 7ой винде обновить RDP с 7.1 до 8.1? все официальные обновления только для клиентской части (для клиента подключений)
    Спасибо!

  6. D:

    Спасибо!
    А как на 7ой винде обновить RDP с 7.1 до 8.1? все официальные обновления только для клиентской части (для клиента подключений)
    Спасибо!

  7. Sergey Denisov:

    Спасибо за статью, очень информативно, смог настроить удалённый доступ дома. В офисе установлен Thinstuff .Работает также, как и через функцию удалённый доступ с помощью RDP протокола, только фишка в том, что удалённо к компьютеру можно подключить несколько пользователей, который смогу совместно выполнять команды на компьютере-сервер. В целом работает хорошо, стабильно.

  8. Рома:

    Стоит Win 8.1 Проф x64
    файл termsrv.dll есть только тут c:\Windows\WinSxS\amd64_microsoft-windows-t..teconnectionmanager_31bf3856ad364e35_6.3.9600.17415_none_7faa3caf28018a5e\termsrv.dll

    Выполнение данных инструкций не спасает… Что сделать можно?
    Может в 8.1 проф, за RDS какая-то другая библиотека отвечает?

  9. Андрей:

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

  10. Swenum:

    Ставим эту https://github.com/stascorp/rdpwrap/releases программу и не имеем проблем ни с обновлениями операционки ни с версией (Vista-7-8-8.1-10), ни с отсутствием в нужной папке библиотек.

Добавить комментарий

Внимание! Не будут добавляться комментарии в виде откровенного спама или прямого анкора на свои сайты. Все спамеры будут передаваться в базу Akismet

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: