В моей практике это большая необходимость. Для этого я решил копать в сторону терминального доступа к компьютеру под управлением операционной системы Windows 7.
Я знал о возможности создания сервера терминалов под Windows XP, но недавно купил ноут себе с Windows 7. Как тут обстоит дело с такой возможностью? 15 минут глупых запросов в поисковик решили проблему. Собрав во едино полученную информацию, ниже описываю свои действия, которые позволили мне работать за домашним компьютером параллельно с другом, обойдя ограничение в одну рабочую сессию.
Итак, в нашем арсенале:
1. Установленная операционная система MS Windows 7 Home Домашняя расширеная (можете попробовать с другими конфигурациями, думаю, получится).
2. Компьютер с выше упомянутой системой, подключённый к локальной сети.
3. Компьютер в локальной сети, с которого будем подключаться и который имеет RDP клиента (по сути любой компьютер с операционной системой Windows), в моём случае это ноутбук с Windows XP.
4. Администраторские права на компьютере с Windows 7.
5. Библиотека терминального сервера, в которой отключено ограничение на одну сессию. Залил на Народ: для
Для просмотра ссылки Войди или Зарегистрируйся, для
Для просмотра ссылки Войди или Зарегистрируйся.
Всё готово, можно начинать!
Общий план работы у нас таков: нужно заменить системную библиотеку 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, выбираю пользователя, которого мы создавали для удалённого доступа, ввожу пароль и... пользуюсь удалённо своим компьютером в тот момент, когда за ним работает кто-то другой.
Таким образом нам удалось сотворить полноценный сервер терминалов из пользовательской системы. Не думаю, что это вполне легальный способ, но для домашних условий подойдёт оптимально.