Использование функции RemoteApp for Hyper-V для работы с устаревшими приложениями

Автор: vik_kr Дата: . Категория: Терминальные технологии

С выходом Windows Server 2008 (Terminal Services, ныне Remote Desktop Services) у пользователей появилась возможность подключаться не только к удаленному рабочем столу, но и к отдельным опубликованным приложениям (RemoteApp или т.н. Seamless Mode). Данный режим существенно облегчает работу, позволяя перенести выполнение большинства приложений на терминальный сервер прозрачно для пользователей. 


Тем не менее, во многих организациях до сих пор используются различные устаревшие приложения, которые не могут выполняться на ОС Windows Server 2008 и выше, что может препятствовать переходу на новые ОС. Данную проблему можно решить различными способами, например, используя решения сторонних производителей (например, Citrix XenApp) или запуская виртуальную машину на локальной рабочей станции пользователя (Windows XP Mode или MED-V), однако есть и другой вариант.

Для клиентских ОС существует возможность публикации отдельных приложений с организацией удаленного доступа к ним по протоколу RDP (RemoteApp for Hyper-V).

Как и в классическом варианте терминального доступа в режиме RemoteApp for Hyper-V существует хост - виртуальная машина с установленными приложениями, к котором требуется обеспечить удаленный доступ и клиент - устройство, за которым работает пользователь.

Microsoft предоставляет на выбор два сценария публикации:
  • В Standalone режиме администратор создает .rdp файл, в котором указывает название приложения и имя хоста, к которому планирует подключаться один или несколько пользователь. Для каждого публикуемого приложения должен быть создан отдельный .rdp файл. Кроме того, в силу ограничений клиентских ОС, на хосте может быть активной лишь одна пользовательская сессия, иными словами, только один пользователь сможет получить доступ к опубликованным приложениям на данном хосте. Хотя данный вариант не требует установки дополнительных служб и компонентов, но может быть сложен в управлении и обслуживании при наличии большого количества хостов и публикуемых приложений.
  • VDI конфигурация предполагает развертывание полноценной инфраструктуры виртуализации рабочих станций на базе сервера виртуализации Hyper-V, Remote Desktop Session Host и Connection Broker из состава Windows Server 2008 R2. Данный вариант обеспечивает единую точку подключения ко всем публикуемым приложениям, отслеживает активные сеансы пользователей, дабы избежать одновременного подключения сразу к нескольким хостам, однако не избавляет администраторов от необходимости создавать .rdp файлы и выполнять настройку виртуальных машин.
В качестве хостовой ОС для публикации приложений поддерживаются следующие ОС:
  • Windows XP x32 Professional SP3;
  • Windows Vista x32 SP1 или выше в редакции Enterprise или Ultimate;
  • Windows 7 x32 в редакции Enterprise или Ultimate.
В Windows 7 данный функционал поддерживается по умолчанию, а для Windows XP и Windows Vista придется загрузить дополнительное обновление (отсюда и отсюда, соответственно).

В качестве клиентской ОС с которой выполняются подключения, поддерживается Windows 7 x32 или x64 (однако, в роли клиентов также могут выступать Windows XP и Windows Vista с установленным клиентом RDP Client 7.0).

Публикация приложений
В качестве примера рассмотрим вариант публикации одного или нескольких стандартных приложений из состава Windows XP.

Перед тем, как переходить к самой процедуре настройки хостовой машины, вам потребуется установить актуальную версию клиента RDP (
RDP Client 7.0) для соответствующей версии ОС и обновление, включающее функционал RemoteApp for Hyper-V (ссылки приведены выше). После установки обновления на компьютер потребуется его перезагрузить.

Включите поддержку удаленных подключений по протоколу RDP, добавьте права на подключение выбранным пользователям и группам, а также проверьте настройки брандмауэра.

Откройте редактор реестра (
regedit) на хостеовой машине и измените параметрfDisabledAllowList расположенный в HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList, установив его значение в 1.

Запустите клиент RDP, укажите имя хоста, к которому требуется подключиться, и сохраните файл конфигурации (.rdp), нажав 
Save As.

Откройте созданный файл в текстовом редакторе, найдите строчки и замените их значения на приведенные ниже:
Alternate shell:s:rdpinit.exe
RemoteApplicationMode:i:1

Добавьте в файл следующие строчки:
RemoteApplicationName:s:<ИМЯ_ПРИЛОЖЕНИЯ>
RemoteApplicationProgram:s:<ПУТЬ_К_ФАЙЛУ>
DisableRemoteAppCapsCheck:i:1
Prompt For Credentials on Client:i:1
, где <ИМЯ_ПРИЛОЖЕНИЯ> - описательное имя приложения (например, Notepad);
<ПУТЬ_К_ФАЙЛУ> - полный путь к исполняемому файлу приложения (например, "C:\Windows\System32\Notepad.exe").

Пример модифицированного файла показан на рисунке:
Сохраните файл и перенесите его на клиентский компьютер.

Теперь, когда пользователь захочет получить доступ к опубликованному приложению ему будет достаточно запустить .rdp файл и указать свои учетные данные для подключения. При необходимости публикации нескольких приложений вам потребуется создать несколько .rdp файлов, указав в каждом путь к нужному приложению.

Учтите также, что если вы планируете использовать один и тот же хост для подключения нескольких пользователей поочередно, то крайне желательным будет настройка автоматического завершения сеанса после отключения пользователя. Сделать это можно отредактировав групповые политики хоста. Интересующая 
Set time limit for disconnected sessions настройка находится:
Для Windows XP: Computer Configuration -> Administrative Templates -> Windows Components -> Terminal Services -> Sessions
Для Windows Vista: Computer Configuration -> Administrative Templates -> Windows Components -> Terminal Services -> Terminal Server -> Session Time Limits
Для Windows 7: Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Session Time Limits
Установите значение параметра в Enable и укажите интервал отключения через 1 минуту.

При подготовке статьи использовались следующие материалы:
  1. RemoteApp for Hyper-V (VDI) Deployment.

Источник: http://vmpress.blogspot.com/2010/09/remoteapp-for-hyper-v.html