Запуск произвольного приложения в виде RemoteApp в Windows

Если вы пользуетесь удалённым компьютером для запуска одного/двух приложений в RDP сессии, скорее всего вам будет удобнее запускать эти программы в режиме RemoteApp. Технология RemoteApp это одна из возможностей терминальной службы Remote Desktop Services, которая позволяет запускать приложения, установленные на удаленном RDS (RDP) сервере так, как будто они запускаются на клиенте локально. Т.е. на монитор клиента доставляется не весь рабочий стол удаленного Windows хоста, а только окно опубликованного приложения.

Несмотря на то, что официально RemoteApp поддерживаются только в Windows Server с развернутой ролью RDS, вы можете опубликовать любое установленное приложение в виде RemoteApp в том числе и на десктопных версиях, таких как Windows 10 или 11. В этой статье мы покажем, как создать RemoteApp приложение и запустить его на удаленном компьютере с Windows 11 (требуется Pro или Enterprise редакции.)

Настройка удаленного компьютера (RDP сервера), на котором будет выполняться приложение RemoteApp:

  1. Включите RDP доступ к компьютеру
  2. Установите приложение
  3. Добавьте пользователя, который будет запускать приложение в локальную группу Remote Desktop Users или в локальную политику безопасности Alow log on through Remote Desktop Services
  4. Разрешите запуск любого локального приложения в виде RemoteApp. Для этого откройте редактор локальной GPO ( gpedit.msc ), перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections. Включите политику Allow remote start of unlisted programs Групповая политика RDS: Allow remote start of unlisted programs
    Либо создайте параметр реестра fAllowUnlistedRemotePrograms со значением 1:
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fAllowUnlistedRemotePrograms /t REG_DWORD /d
    Параметр реестра fAllowUnlistedRemotePrograms (разрешить публикацию RemoteApp)
  5. Перезагрузите удаленный компьютер.
Если вы хотите ограничить список локальных приложений, которые удаленный пользователь может запускать в виде RemoteApp, нужно для каждого приложения создать отдельную ветку в ветке реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications . Пример описания REG файла для публикации Adobe Reader в виде RemoteApp на RDS в рабочей группе без домена:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\MyAdobeReaderApp]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"Name"="Adobe Reader"
"Path"="C:\\Program Files\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe"
"ShortPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe"
"IconPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe"
"IconIndex"=dword:00000000
"ShowInTSWA"=dword:00000001
"SecurityDescriptor"=""

Настройка RDP клиента.

Теперь, на клиенте (на котором вы хотите показывать окно RemoteApp приложение), нужно настроить ярлык для RDP подключения.

  1. Откройте клиент mstsc.exe , введите имя (IP) удаленного RDP сервера и имя пользователя для входа
  2. (Опционально) Настройте необходимые параметры удаленного подключения на остальных вкладках клиента RDP (проброс устройств, дисков, буфера обмена и т.д.)
  3. Сохраните настроенное подключение в файл с расширением *.RDP (Save As) Сохранить RDP файл с настройками удаленного подключения
  4. Откройте этот *.RDP файл с помощью любого текстового редактора. Добавьте в конец файла строки:
    remoteapplicationmode:i:1
    RemoteApplicationName:s:КАК ДОЛЖЕН НАЗЫВАТЬСЯ ЗАГОЛОВОК ОКНА ПРОГРАММЫ В ПАНЕЛИ
    RemoteApplicationProgram:s:"ПУТЬ К ИСПОЛЬНЫЕМОМУ ФАЙЛУ ПРИЛОЖЕНИЯ НА RDP СЕРВЕРЕ"
    DisableRemoteAppCheck:i:1
    Prompt for Credentials on Client:i:0
    Alternate Shell:s:rdpinit.exe
  5. Если нужно задать дополнительные параметры запуска приложения, добавьте строку:
    RemoteApplicationCmdLine:s:АРГУМЕНТЫ ЗАПУСКА ПРИЛОЖЕНИЯ
    Убедитесь, что указанные опции не заданы выше в имеющихся параметрах RDP подключения. Это может вызвать конфликт.
  6. Сохраните файл с настройками RDP подключения.

Например, для запуска обычного блокнота ( notepad.exe ) в виде RemoteApp, добавьте такие строки в RDP файл:

remoteapplicationmode:i:1
RemoteApplicationName:s:Remote_Notepad
RemoteApplicationProgram:s:"%windir%\notepad.exe"
DisableRemoteAppCheck:i:1
Prompt for Credentials on Client:i:0
Alternate Shell:s:rdpinit.exe

Параметры RDP файла для запуска удаленного приложения в режиме опубликованного RemoteApp

Запустите сохраненный RDP файл. Должно появится окно с запросом пароля, подтверждение что вы доверяете RDP сертификату и через некоторое время на вашем компьютере появится окно запущенного RemoteApp приложения.

Запуск опубликованного RemoteApp приложения через ярлык RDP

Для запуска приложения Microsoft Store в виде RemoteApp, нужно указать его имя в поле RemoteApplicationProgram в таком формате:

start shell:AppsFolder\Microsoft.WindowsCalculator_8wekyb3d8bbwe!App

В данном случае имя APPX нужно скопировать из значения PackageFamilyName и добавить в !App конце.

Get-AppxPackage | Select-Object Name, PackageFamilyName | Where-Object { $_.Name -like "*calc*" }

Определить имя Microsoft Store приложения для удаленного запуска

Если вам часто приходится создавать ярлыки для запуска RemoteApp, для удобной генерации RDP или MSI файлов для клиентов можно использовать бесплатную RemoteApp Tool (https://github.com/kimmknight/remoteapptool). Утилита позволяет в том числе настроить ассоциации файлов, изменить иконку и другие параметры RemoteApp приложения (позволяет в том числе настроить RDP хост, в том числе таймауты завершения отключенных сессий).

Утилита RemoteApp Tool для генерации RDP файла

Описанный способ публикации RemoteApp на десктопных компьютерах с Windows 10 или 11 не требует развертывание отдельного сервера лицензирования RDS и приобретения терминальных лицензий (RDS CAL). Однако вы сможете подключиться к такому компьютеру только одной одновременной RemoteApp сессией (для обхода ограничения на количество одновременных RDP соединения с Windows 10/11 можно использовать RDP Wrapper).


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)