Если вы пользуетесь удалённым компьютером для запуска одного/двух приложений в RDP сессии, скорее всего вам будет удобнее запускать эти программы в режиме RemoteApp. Технология RemoteApp это одна из возможностей терминальной службы Remote Desktop Services, которая позволяет запускать приложения, установленные на удаленном RDS (RDP) сервере так, как будто они запускаются на клиенте локально. Т.е. на монитор клиента доставляется не весь рабочий стол удаленного Windows хоста, а только окно опубликованного приложения.
Несмотря на то, что официально RemoteApp поддерживаются только в Windows Server с развернутой ролью RDS, вы можете опубликовать любое установленное приложение в виде RemoteApp в том числе и на десктопных версиях, таких как Windows 10 или 11. В этой статье мы покажем, как создать RemoteApp приложение и запустить его на удаленном компьютере с Windows 11 (требуется Pro или Enterprise редакции.)
Настройка удаленного компьютера (RDP сервера), на котором будет выполняться приложение RemoteApp:
- Включите RDP доступ к компьютеру
- Установите приложение
- Добавьте пользователя, который будет запускать приложение в локальную группу
Remote Desktop Users
или в локальную политику безопасности Alow log on through Remote Desktop Services - Разрешите запуск любого локального приложения в виде RemoteApp. Для этого откройте редактор локальной GPO (
gpedit.msc
), перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections. Включите политику 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
- Перезагрузите удаленный компьютер.
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 подключения.
- Откройте клиент
mstsc.exe
, введите имя (IP) удаленного RDP сервера и имя пользователя для входа - (Опционально) Настройте необходимые параметры удаленного подключения на остальных вкладках клиента RDP (проброс устройств, дисков, буфера обмена и т.д.)
- Сохраните настроенное подключение в файл с расширением
*.RDP
(Save As) - Откройте этот *.RDP файл с помощью любого текстового редактора. Добавьте в конец файла строки:
remoteapplicationmode:i:1
RemoteApplicationName:s:КАК ДОЛЖЕН НАЗЫВАТЬСЯ ЗАГОЛОВОК ОКНА ПРОГРАММЫ В ПАНЕЛИ
RemoteApplicationProgram:s:"ПУТЬ К ИСПОЛЬНЫЕМОМУ ФАЙЛУ ПРИЛОЖЕНИЯ НА RDP СЕРВЕРЕ"
DisableRemoteAppCheck:i:1
Prompt for Credentials on Client:i:0
Alternate Shell:s:rdpinit.exe - Если нужно задать дополнительные параметры запуска приложения, добавьте строку:
RemoteApplicationCmdLine:s:АРГУМЕНТЫ ЗАПУСКА ПРИЛОЖЕНИЯ
Убедитесь, что указанные опции не заданы выше в имеющихся параметрах RDP подключения. Это может вызвать конфликт. - Сохраните файл с настройками 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 файл. Должно появится окно с запросом пароля, подтверждение что вы доверяете RDP сертификату и через некоторое время на вашем компьютере появится окно запущенного RemoteApp приложения.
start shell:AppsFolder\Microsoft.WindowsCalculator_8wekyb3d8bbwe!App
В данном случае имя APPX нужно скопировать из значения
PackageFamilyName
и добавить в !App конце.
Get-AppxPackage | Select-Object Name, PackageFamilyName | Where-Object { $_.Name -like "*calc*" }
Если вам часто приходится создавать ярлыки для запуска RemoteApp, для удобной генерации RDP или MSI файлов для клиентов можно использовать бесплатную RemoteApp Tool (https://github.com/kimmknight/remoteapptool). Утилита позволяет в том числе настроить ассоциации файлов, изменить иконку и другие параметры RemoteApp приложения (позволяет в том числе настроить RDP хост, в том числе таймауты завершения отключенных сессий).
Описанный способ публикации RemoteApp на десктопных компьютерах с Windows 10 или 11 не требует развертывание отдельного сервера лицензирования RDS и приобретения терминальных лицензий (RDS CAL). Однако вы сможете подключиться к такому компьютеру только одной одновременной RemoteApp сессией (для обхода ограничения на количество одновременных RDP соединения с Windows 10/11 можно использовать RDP Wrapper).