RemoteApp для Hyper-V (часть 1)

Опубликовано: 22 Апреля, 2023

на нашу рассылку новостей об обновлениях статей VirtualizationAdmin.com в режиме реального времени

Введение

В конце 2009 года Microsoft выпустила новую функцию RemoteApp для Hyper-V. На более ранних стадиях бета-тестирования этой функции давали другие имена, но каждое имя, данное этой функции до сих пор, не отражало реальную функцию этой функции. Давайте начнем с обсуждения того, что предлагает эта функция и почему вы бы ее использовали.

Что такое RemoteApp для Hyper-V

Microsoft представила название RemoteApp с выпуском служб терминалов Windows 2008. В прошлом решения Microsoft Terminal Services для Windows 2008 TS поддерживали только публикацию полного рабочего стола с использованием протокола RDP. В Windows 2008 можно было беспрепятственно запускать приложение с сервера терминалов, чтобы оно выглядело так, как если бы оно выполнялось локально на клиенте, сравнимо с опубликованными приложениями от Citrix. Таким образом, RemoteApp — это Microsoft, предлагающая приложение, работающее на сервере терминалов, беспрепятственно работающее с клиентом.

Так что же такое RemoteApp для Hyper-V? Hyper-V не запускает приложения, так как же вы можете публиковать приложения на этой платформе? Поэтому название нелогичное. Лучшее название может быть RemoteApp для операционных систем рабочих станций, потому что именно это и делает эта функция. Таким образом, вы можете беспрепятственно предлагать приложение на своем клиенте, которое на самом деле работает в операционной системе рабочей станции на другой платформе. В основном это будут виртуализированные рабочие станции, работающие на платформе гипервизора, такой как Hyper-V. Вероятно, именно поэтому Microsoft назвала эту функцию RemoteApps for Hyper-V. Однако для этой функции нет ограничений для платформы гипервизора, вы также можете использовать, например, VMware vSphere или физическую рабочую станцию.

Вкратце, эта функция позволяет создавать приложения RemoteApp в операционных системах рабочих станций, таких как Windows XP, Windows Vista или Windows 7.

Когда вам нужно RemoteApp для Hyper-V

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

  • Для завершения инфраструктуры сервера терминалов. В этом сценарии организация использует службы терминалов в качестве основного компонента для предоставления своим пользователям приложений. К сожалению, все еще существуют приложения, совместимые со службами терминалов, поэтому такие приложения не могут работать в службах терминалов. Для таких приложений RemoteApp для Hyper-V может быть решением, предлагающим эти приложения аналогично тому, как это делает другое приложение, работающее в службах терминалов.
  • Для поддержки программного обеспечения, не совместимого с Windows 7/Vista. В этом случае организация перешла на Windows 7 (или Windows Vista), и есть несколько приложений, совместимых с Windows 7 или Windows Vista. Эти приложения могут быть установлены в Windows XP (или Windows Vista) и беспрепятственно предлагаться на рабочих станциях Windows 7 (или Windows Vista).
  • Цели тестирования. Для веб-разработчиков может быть полезно иметь более старую версию Internet Explorer для тестирования своего приложения. Как мы все знаем, невозможно иметь более одной версии Internet Explorer на одном компьютере. С помощью RemoteApp для Hyper-V можно беспрепятственно предлагать несколько версий для целей тестирования.
  • Приложения, требующие полной безопасности. Последний сценарий может заключаться в том, что одно приложение обрабатывает очень конфиденциальные данные, и поток данных не должен покидать центр обработки данных. Если это так, и в организации нет инфраструктуры сервера терминалов, а доступ к приложению требуется только нескольким пользователям, это может быть сценарием, в котором вы можете использовать RemoteApp для Hyper-V.

Требования RemoteApp для Hyper-V

Теперь мы знаем, что именно делает эта функция и когда ее можно использовать, пришло время показать вам, как вы можете включить и настроить RemoteApp для Hyper-V.

Хостом, на котором запущено приложение, может быть Windows XP SP3, Windows Vista SP1/SP2 или Windows 7. Для Windows XP и Windows Vista необходимо установить обновление. Для Windows XP обновление доступно здесь, для Windows Vista обновление можно скачать здесь. Для доступа к RemoteApp вам необходимо иметь клиент удаленного рабочего стола 7.

Установка и настройка RemoteApp для Hyper-V

В этой статье я буду использовать Windows XP в качестве хоста для RemoteApp, в то время как клиент работает под управлением Windows 7. Как упоминалось ранее, мне нужно установить обновление на рабочую станцию Windows XP. Обновление на самом деле представляет собой установку исправления, поэтому после нескольких следующих кнопок и перезагрузки обновление устанавливается.

Изображение 27775
Рисунок 1: Установка обновления в Windows XP

По логике вам также необходимо включить RDP-подключения к системам, чтобы можно было создать RDP-подключение.

Изображение 27776
Рисунок 2: Включение RDP

Помимо обновления и включения RDP на хосте, необходимо выполнить и изменить некоторые другие настройки. К сожалению, MS (пока) не предоставляет никаких инструментов для этих шагов, поэтому вам нужно вручную редактировать реестр и файлы конфигурации.

Первым шагом в этом процессе является запуск редактора реестра и переход к ключу [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowList].

В этом ключе можно найти значение реестра с именем fDisabledAllowList. Данные по умолчанию — REG_DWORD 0, данные необходимо изменить на DWORD 1.

Изображение 27777
Рисунок 3: Изменение fDisableAllowList

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

Изображение 27778
Рисунок 4: Добавление параметров приложения

На этих шагах настройка хоста завершена. Следующим шагом является создание RDP-файла для подключения к хост-системе с использованием функций RemoteApp. Самый простой способ добиться этого — запустить клиент удаленного рабочего стола, настроить параметры подключения по своему усмотрению и использовать кнопку «Сохранить как» для создания RDP-файла.

Изображение 27779
Рисунок 5: Создание файла RDP

После создания файла RDP вам необходимо (снова) добавить этот файл вручную.

В файле вам нужно изменить настройки режима удаленного приложения с 0 на 1 (режим удаленного приложения: i: 1) и добавить rdpinit.exe в настройку альтернативной оболочки: s:.

Наконец, в файл RDP необходимо добавить следующие параметры.

  • отключить удаленное приложениеcapscheck:i:1
  • remoteapplicationprogram:s:<NameoftheApplicationRegistry>

Настройки; disableremoteappcapscheck и альтернативная оболочка необходимы для хостов Windows XP и Vista, для Windows 7 эти два не нужны (но ничего не ломают). Логически настройка remoteapplicationprogram должна быть настроена с именем, указанным в реестре хоста.

Изображение 27780
Рисунок 6: Настройка файла RDP для RemoteApp

Когда вы внесли эти изменения в файл, вы готовы запустить RemoteApp, дважды щелкнув файл RDP. На хостах Windows Vista и 7 можно настроить единый вход (как описано в этой статье группы MS RDS). К сожалению, хосты Windows XP не поддерживают единый вход, поэтому в моем примере мне нужно войти на хост с помощью кнопки сведений, прежде чем RemoteApp отобразится в гостевой системе.

Изображение 27781
Рисунок 7: Windows XP Paint работает как RemoteApp в гостевой системе Windows 7.

Во время тестирования этой функции я обнаружил, что на самом деле могу запустить любое приложение, доступное в хост-системе (в данном случае на компьютере с Windows XP), изменив параметр remoteapplicationprogram в файле RDP на другое имя исполняемого файла. Поискав в Интернете, я нашел одно направление к этому (вызванное изменением данных значения реестра fDisabledAllowList), но я не смог воспроизвести решение (полный путь к программе), представленное в этом сообщении.

Таким образом также можно запускать больше приложений RemoteApp с одного хост-компьютера. К сожалению, (до сих пор) нет официальной документации для этой функции от Microsoft. Когда я спросил в Microsoft, я обнаружил, что это стандартное поведение для этой функции; так что на самом деле настройки в ключах реестра не проверяются/используются. Неясно, будет ли изменено это поведение, потому что это может создать угрозу безопасности.

Я также слышал, что интеграция этих RDP-файлов в портал RDS Web Access возможна путем настройки кода, но и для этой части документации нет. После обращения в Microsoft я узнал, что это не поддерживается и не рекомендуется Microsoft.

Вывод

В этой статье я объяснил, что такое функция RemoteApp для Hyper-V, и описал некоторые сценарии из реальной жизни. Мы продолжили установку и настройку функции. Примечательно, что есть несколько ручных шагов. Жаль, что Microsoft не имеет официальной документации по функциям, из-за чего непонятно, почему все приложения, доступные на хосте, могут быть запущены.

на нашу рассылку новостей об обновлениях статей VirtualizationAdmin.com в режиме реального времени