Ультра Сервис: Ремонт и обслуживание компьютеров в Новосибирске +7 (383) 255-82-69
Настройка TS RemoteApp в Windows 7 x86 / x64 PDF Печать E-mail
Автор: Administrator   
06.07.2010 22:25

 

Скрытый функционал сервера удалённых приложений в Windows 7

 

Функционал сервера удаленных рабочих столов (сервера терминалов) для клиентских операционных систем Windows появился еще с XP. Дело в том, что при тестировании Windows XP SP2 beta не было ограничений на использование удалённых рабочих столов. Именно с беты умные люди и выдернули необходимую библиотеку, благодаря чему XP SP2 приобрел функционал сервера терминалов. Ограничение на 10 одновременных подключений в XP также обошли путём  патча библиотеки tcpip.sys. В итоге, получился достаточно "лёгкий" продукт, который многие используют до сих пор из-за своей простоты и малой ресурсоёмкости.

Ситуацию  с удалёнными рабочими столами в Widows Vista рассматривать не будем. Ибо уже не актуально. На данный момент самой современной клиентской ОС является Widows 7. На ней и остановимся. Как повысить её функционал до многопользовательского сервера терминалов, думаю не стоит особо расказывать. Всё делается аналогично старой доброй XP, а именно заменой на пропатченный termsrv.dll. Об этом можно почитать в гугле. Информацию, откуда он появился для Windows 7 мне никто не предоставил. Но добившись функций сервера терминалов в семёрке, я продолжил исследования. Тем более, что аналогичное решение уже есть для windows xp - то использование "тяжелой" 7-ки для не совсем осмысленно.

Раз уж современные серверные ОС Windows Server 2008 и 2008 R2 позволяют предоставлять помимо обычных терминальных сессий еще и приложения сквозь бесшовный терминал (TS RemoteApp), то данный функционал явно присутствует в современной Windows 7. Приложение в терминале - вещь еще более интересная, чем удалённый десктоп. Зачем пользователю видеть удалённый рабочий стол, кнопки "Пуск" итд, тратить на это дополнительный трафик? А чтобы ограничить пользователя и урезать ему функционал - настраивать множественные групповые политики? Раз уж удалённому пользователю необходимо только приложение, то пусть оно откроется как обычное (как при запуске с его компьютера) и покажет только окно самой программы. Пользователю будед комфортно, а  администратору спокойней. Полагаю, что непрофессионал (читай - девачка, которая ходит "фкантакти" и никогда не догадается, что жесткий диск это винчестер) даже не отличит - разницу в том, терминальная ли это сессия или приложение запущено локально. Выдать может только медленная загрузка приложения (например при низкой скорости соединения или загруженности сервера), но опять же данные вещи можно списать на "тормоза" компа или глюки виндус :-)

В общем задача: сделать из Windows 7 терминальный сервер удалённых приложений (Terminal Server RemoteApp) для доставки оных в любую точку земного шара пользователям стандартной Windows XP SP3

Решение. Патчим termsrv.dll (подчеркну dll-ки разные на x86 и x64), создаем максимальное количество одновременных подключений. Проверяем работоспособность удалённого рабочего стола. Если всё ОК - переходим к активации функционала TS RemoteApp. Делается это - правкой одного(!) ключа реестра. 

Открывает regedit, ищем "TSAppAllowList", в нём правим значение ключа с нуля на еденицу.

 

 

Теперь добавляем необходимое приложение, которое будед запускаться в бесшовном терминале. Создаём раздел внутри TSAppAllowList.  Название произвольное. Внутри раздела прописываем имя приложения и путь к нему. Каждый раздел будед посвящен отдельному приложению. Возьмём для примера - стандартный виндовый калькулятор. В разделе создаём строковые параметры Name и Path. Полагаю, что их смысл  понятен из приложенной ниже картинки. В некоторых англоязычных источниках предлагается в разделе TSAppAllowList создавать раздел Application, а уже в нём создавать разделы удалённых программ. Но в моём варианте всё и так заработало.

 

 

 

 

 Всё! Windows 7 TS RemoteApp edition готов к боевым испытаниям! Осталось донастроить для данных целей Windows XP SP3 (не знаю у кого как, но у меня со всеми последними обновлениями, скачивающимися через встроенный автообновлятор). Так что если что-то незаработает - обновляйтесь. Возможно есть путь проще при помощи возможных визардов, но я делал следующим образом. Кстати, для Windows XP SP3 существует обновление для поддержки RemoteApp. Скачать его можно здесь (не забываем выбрать language вашей ОС), но у меня работало всё и без него.

 Открываем в XP SP3 в Пуск => Программы => Стандартные = "Подключение к удалённому рабочему столу". Прописываем IP сервера (вашего псевдо TS RemoteApp на базе Windows 7), куда будем подключаться. Затем жмём внизу  окна "Сохранить как".

 

Выбираем путь куда будем сохранять файл подключения *.RDP. Сохраняем. Идём туда, куда сохраняли - открываем блокнотом наш RDP-файл. Находим следующие значения (если таковые уже имеются - заменяем):

remoteapplicationmode:i:1
remoteapplicationprogram:s:calc
disableremoteappcapscheck:i:1
alternate shell:s:rdpinit.exe

 

Замечу, что основной параметр приложения это "remoteapplicationprogram:s:" после него БЕЗ ПРОБЕЛОВ прописывается имя приложения или путь/имя приложения. Тут мои эксперименты продолжились. Для калькулятора можно прописать calc, calc.exe или C:\windows\system32\calc.exe (путь в удалённой ОС). Я подставил вместо calc - Notepad (Блокнот) и на удивление всё заработало. Даже без прописывания в реестре Windows 7 приложений!!! Помните что такое "Переменные среды", чтобы не пытаться запустить без пути то, чего в "переменных средах" нет. То есть если вам нужно какое-то конкретное приложение, а не стандартное виндовое, то пишите полный путь к нему. Если приложение будет прописано в реестре Windows 7, а в параметрах RDP - только имя, то соответственно, если приложения не будет в "переменных средах", то будет выдана ошибка, что приложение не найдено и терминальная сессия закроется.

 Еще одним правилом будет то, что у вас (вернее у того пользователя под которым вы зайдете в терминал) также должны быть права на запуск приложения и права на доступ к той директории, в которой находится данное приложение.

Итак... Запускаем наш "ярлык".

 

 Удалённый сервер попросит Имя пользователя и Пароль. Вводим и подключаемся. Приложение в бесшовном терминале - доставлено. 

 

Улыбнуло наличие удалённой клавиатуры. Возможно с раскладкой будут проблемы - поэтому программисты "Майкрософт" принудительно добавили эту панель при запуске любого приложения. Интересен вариант если на сервер, а также на локальную машину поставить неуважаемый мною "ПунтоСвитчер". Возможно начнуться проблемы. Уважаемые Юзвери, Админы, а также их родители: НЕ ИСПОЛЬЗУЕТЕ ПУНТОСВИТЧЕР, СМОТРИТЕ В МОНИТОР, А НЕ НА КЛАВИАТУРУ, КОГДА ПЕЧАТАЕТЕ. Это притупляет - раз. Таким образом вы никогда не научитесь быстро печатать - два. В функциях Пунто есть система логов, так что не думаю, что будет весело, если кто-то заглянет в эти данные, кстати там могут  записываться и пароли - три.

Осталось добавить серверный "Terminal Services Easy Print" и цены бы семёрке не было. Но где ж его взять...

Если так пойдёт, то в будущем, полагаю, будем уже использовать Windows 8 уже в качестве контроллера домена AD :-)

Комментарии и предложения прошу выслать на Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript  

Автор не стремился никоим образом оградить пользователя от покупки серверного программного обеспечения компании "Майкрософт". Данное руководство составлено лишь в ознакомительных целях, а также показать пользователям неразрывность функционала между настольной и серверной ОС.

Выдержка с сайта "Майкрософт": Лицензия на настольную операционную систему Windows не позволяет нескольким пользователям иметь доступ или иным образом использовать одну лицензированную копию программного обеспечения одновременно. Уважайте авторское право.

 

 Благодарю за внимание, Удачи на дорогах :-) 

Ультра Сервис АйТи Консалтинг, ремонт и обслуживание компьютеров в Новосибирске. +7-(383)-255-82-69

Обновлено 07.07.2010 08:24
 
xbox купить спб www.popularsite.ru