如果您使用远程计算机在RDP会话中运行一个或两个应用程序,则可能会发现在在remoteapp模式。 RemoteApp技术是Windows Server上远程桌面服务角色的功能之一,它使您可以在远程RDS(RDP)服务器上运行应用程序,就好像它们在客户端上本地运行一样。这意味着远程Windows主机的整个桌面未交付到客户端的显示器;仅显示已发布的应用程序的窗口。
虽然仅在Windows Server上官方支持REMOTEAPPS,但您仍然可以在Windows的桌面版本(例如10或11)上配置并运行任何已安装的程序。
第一步是配置远程计算机(RDP服务器)运行remoteapp工作量:
- 在Windows上启用远程桌面协议
- 安装您要使用的应用程序
- 添加允许将应用程序使用的用户添加到本地
Remote Desktop Users
小组或通过远程桌面服务登录本地策略 - 允许任何本地程序作为remoteApp运行。打开本地组策略编辑(
gpedit.msc
),转到计算机配置 - >管理模板 - > Windows组件 - >远程桌面服务 - >远程桌面会话主机 - >连接。启用政策允许远程启动未列出的程序
或者,创建一个注册表参数fallowunlistedremoteprogragons有价值1:reg add "HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services" /v fAllowUnlistedRemotePrograms /t REG_DWORD /d 1
- 重新启动远程计算机。
如果要限制远程用户可以作为remoteApp运行的本地应用程序列表,请在下面创建单独的注册表密钥HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications
对于每个应用程序。
用于在工作组环境中发布Acrobat Reader作为RDS的示例文件:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplicationsMyAdobeReaderApp] "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客户端设置。
现在,在客户端设备上配置了RDP连接的快捷方式(您要在其中显示RemoteApp窗口)。
- 打开默认远程桌面连接客户端(
mstsc.exe
)。输入远程桌面计算机的DNS名称/IP和要登录的用户名。 - (可选)在RDP客户端的其余选项卡上配置所需的远程连接设置(本地设备重定向:驱动器,远程桌面剪贴板,打印机等)
- 将配置的远程连接设置保存到使用的文件
*.RDP
扩展(另存为) - 在任何文本编辑器中打开此 *.RDP文件。将以下指令添加到文件末尾:
remoteapplicationmode:i:1 RemoteApplicationName:s:REMOTEAPP TITLE SHOULD BE DISPLAYED IN THE TASKBAR RemoteApplicationProgram:s:"PATH TO THE APP EXECUTABLE ON THE RDP HOST" DisableRemoteAppCheck:i:1 Prompt for Credentials on Client:i:0 Alternate Shell:s:rdpinit.exe
- 如果您需要使用其他命令行参数运行程序,请添加指令:
RemoteApplicationCmdLine:s:COMMAND LINE PARAMETERS
确保选项集未在现有的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 Windows将出现在桌面上。
要以remoteApp运行Microsoft Store应用程序,请在此格式中指定其名称:
了解更多:配置Mac的Windows键盘,反之亦然
start shell:AppsFolderMicrosoft.WindowsCalculator_8wekyb3d8bbwe!App
在此示例中,APPX名称是从PackageFamilyName值中复制的,我手动添加了!应用程序在最后。
Get-AppxPackage | Select-Object Name, PackageFamilyName | Where-Object { $_.Name -like "*calc*" }
如果您发现通常需要创建快捷方式来启动remoteapp,则可以使用免费remoteapp工具((https://github.com/kimmknight/remoteapptool)轻松为客户生成RDP或MSI安装程序文件。该工具还允许设置文件关联,更改remoteApp项目的图标和其他参数,并配置RDP主机设置(包括RDP会话超时)。
这种在运行Windows 10/11的台式设备上发布远程启动的方法不需要部署单独的RDS许可服务器和购买终端许可(RDS CALS)。但是,这样的计算机只能提供一个同时的remoteApp会话。您可以使用RDP包装器绕过Windows 10和11中并发RDP连接数量的限制。