Лицензионное соглашение операционной системы Windows XP Professional разрешает 10 удаленных сетевых подключений без дополнительной лицензии (Windows XP Home Edition соответственно 5). Это означает, что используя нижеперечисленные методы Вы нарушаете лицензионное соглашение.
Каким же образом можно заставить работать Windows XP (Windows 7) как полноценный терминальный сервер.
Существует несколько решений:
- Использовать универсальное решение MU или MUx64. Работает для Windows XP SP2/SP3, Vista SP1/SP2, Windows 7, Windows Server 2008 SP1/SP2
Итак, в нашем арсенале:
1. Установленная операционная система MS Windows 7 Максимальная (можете попробовать с другими конфигурациями, думаю, получится).
2. Компьютер с выше упомянутой системой, подключённый к локальной сети.
3. Компьютер в локальной сети, с которого будем подключаться и который имеет RDP клиента (по сути любой компьютер с операционной системой Windows), в моём случае это ноутбук с Windows XP.
4. Администраторские права на компьютере с Windows 7.
5. Библиотека терминального сервера, в которой отключено ограничение на одну сессию. Залил на Народ: для 32-битной системы, для 64-битной системы.
Всё готово, можно начинать!
Общий план работы у нас таков: нужно заменить системную библиотеку termsrv.dll на указанную выше, создать отдельного пользователя для доступа к удалённому рабочему столу, разрешить доступ к удалённому рабочему столу этому пользователю, сделать так, чтобы этот пользователь имел администраторские права (можно и не давать таких прав, мне они нужны, чтобы работать удалённо на компьютере без каких-либо ограничений), прописать кое-какие ключи реестра, протестировать работу.
Как известно, Windows 7 ограничивает доступ к своим системным файлам даже администраторам. то есть для того, чтобы заменить файл termsrv.dll, необходимо предоставить такие права администратору, мало того, изменить владельца файла (попахивает Linux'ом). Для осуществления выше описанного кликаем правой кнопкой мыши по значку "Мой компьютер" и выбираем "Управление" или через "Панель управления" > "Администрирование" > "Управление компьютером" заходим в "Службы" и останавливаем службу "Службы удалённых рабочих столов". Через проводник заходим на C:\Windows\System32 и ищем там файлик termsrv.dll. Кликаем по нему правой кнопкой мыши, выбираем "Свойства". Далее заходим во вкладку "Безопасность", в поле "Группы или пользователи" выбираем группу Администраторы (вы же зашли в систему под администраторской учётной записью, правильно? Если нет, стоит исправить положение). В приведённых ниже иллюстрациях у меня уже свыставлены все параметры и разрешения, у вас изначально будут разрешения только на чтение и выполнение.
Далее под полем "Разрешения для группы Администраторы" жмём кнопку "Дополнительно". Должно вылезти окошко под названием "Дополнительные параметры безопасности для termsrv.dll", где во вкладке "Разрешения" под полем "Элементы разрешений" нажимаем кнопку "Изменить разрешения".
Вылезет ещё одно окошко под тем же названием, что и перед ним, только теперь вы можете выбрать в поле "Элементы разрешений" элемент "Администраторы" и нажать кнопку "Изменить".
Вылезет окошко "Элемент разрешений для termsrv.dll", где в поле "Разрешения" установите галочку на "Разрешить полный доступ".
Во всех окошках нажимаем ОК для применения внесённых изменений.
Теперь для изменения владельца файла termsrv.dll открываем командную строку с правами администратора.
Скопируем команду в окно командной строки:
takeown /f C:\Windows\System32\termsrv.dll
Нажимаем Enter. Система должна сообщить нам о том, что владелец файла изменён на текущего пользователя.
Переименовываем файл termsrv.dll во что-нибудь типа termsrv.dll.original, оставив его в качестве резервной копии. Скачанный файл переименовываем в termsrv.dll и копируем его в C:\Windows\System32.
Теперь производим записи в реестр, копируя команды в командную строку:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 10 /f
В последней команде 10 - количество одновременных сессий. Можете здесь поставить нужное вам количество.
Далее нам нужно создать пользователя, через которого мы будем подключаться по RDP. Для этого кликаем правой кнопкой мыши по значку "Мой компьютер" и выбираем "Управление" или через "Панель управления" > "Администрирование" > "Управление компьютером" выбираем "Локальные пользователи и группы" в дереве слева, открываем папку "Пользователи", правой кнопкой мыши кликаем по свободному месту в списке пользователей, в контекстном меню выбираем "Новый пользователь...". Заполняем предложенную форму, жмём кнопку "Создать".
Теперь в списке пользователей находим нашего нового пользователя и двойным кликом по нему открываем свойства пользователя, где заходим во вкладку "Членство в группах" добавляем группы "Администраторы" и "Пользователи удалённого рабочего стола".
Всё готово, осталось только запустить службу "Службы удалённых рабочих столов" (чуть выше мы уже говорили о том, как остановить эту службу, теперь нам нужно её запустить) и разрешить удалённый рабочий стол, для чего в свойствах системы слева выбираем "Настройки удалённого доступа".
Вылезет окошко "Свойства системы" с открытой вкладкой "Удалённый доступ", где в блоке "Удалённый рабочий стол" выбираем средний параметр "Разрешить подключение от компьютеров с любой версией удалённого рабочего стола (опаснее)". Что тут опасного не понятно, но деваться нам некуда, так как я, например, буду подключаться с RDP клиента Windows XP.
Нажимаем кнопку "Выбрать пользователей", добавляем пользователя, созданного для удалённого доступа, с помощью кнопки "Добавить".
Перезагружаем машину, вот теперь действительно всё, на другой машине запускаю RDP клиент, ввожу адрес компьютера с Windows 7, выбираю пользователя, которого мы создавали для удалённого доступа, ввожу пароль и... пользуюсь удалённо своим компьютером в тот момент, когда за ним работает кто-то другой.
Таким образом нам удалось сотворить полноценный сервер терминалов из пользовательской системы. Не думаю, что это вполне легальный способ, но для домашних условий подойдёт оптимально.
Команды для добавления ключей в реестр из командной строки брал отсюда.
Файлы termsrv.dll скачал здесь.
- Использовать решение TS-Free-1.1. Эта программа заменяет бибилиотекку crypt.dll, на версию из бета версии ко второму сервис паку (где ограничение на количество сеансов отсутствует)
- Использовать решение Termiserv_XPSP2-SP3_i386_2.1.exe. Эта программа работает аналогичным образом.
- Еще один вариант WinXP_Pro-TerminalServer.exe
- Для Windows Vista TermSrv-for_Vista.zip
- XPUnlimited - отличная легальная реализация терминального сервера для Windows XP. Есть бесплатная версия, есть платный вариант
- WinConnect Server XP. Это полноценная реализация терминального сервера. Стоимость этого програмного продукта составляет 355 $ за 3 подключения.
ВНИМАНИЕ! Никогда не используйте эту информацию в коммерческих целях! Это противоречит лицензионному соглашению Microsoft!