配置 Windows 10/11 上託管的 RemoteApps(無 Windows Server)

Jacki

如果您使用遠程計算機在 RDP 會話中運行一兩個應用程序,您可能會發現在 RDP 會話中運行這些程序更方便。遠程應用程序模式。 RemoteApp 技術是 Windows Server 上遠程桌面服務角色的功能之一,它允許您運行安裝在遠程 RDS (RDP) 服務器上的應用程序,就像它們在客戶端本地運行一樣。這意味著遠程Windows主機的整個桌面不會傳送到客戶端的顯示器上;僅顯示已發布應用程序的窗口。

雖然 RemoteApps 僅在具有 RDS 角色的 Windows Server 上得到正式支持,但您仍然可以在 Windows 桌面版本(例如 10 或 11)上將任何已安裝的程序配置為 RemoteApp 並運行。本文介紹瞭如何在 Windows 11 設備上創建、管理和運行 RemoteApps(需要專業版或企業版)。

第一步是配置遠程計算機(RDP 服務器)運行 RemoteApp 工作負載:

  1. 在 Windows 上啟用遠程桌面協議
  2. 安裝您要使用的應用程序
  3. 將允許使用該應用程序的用戶添加到本地Remote Desktop Users組或本地策略允許通過遠程桌面服務登錄
  4. 允許任何本地程序作為 RemoteApp 運行。打開本地組策略編輯器(gpedit.msc),轉到計算機配置 -> 管理模板 -> Windows 組件 -> 遠程桌面服務 -> 遠程桌面會話主機 -> 連接。啟用策略允許遠程啟動未列出的程序
    或者,創建一個註冊表參數f允許未列出的遠程程序值為1:
    reg add "HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services" /v fAllowUnlistedRemotePrograms /t REG_DWORD /d 1
  5. 重新啟動遠程計算機。

如果要限制遠程用戶可以作為 RemoteApp 運行的本地應用程序列表,請在下面創建一個單獨的註冊表項HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications對於每個應用程序。
用於在工作組環境中的 RDS 上將 Acrobat Reader 作為 RemoteApp 發布的示例 REG 文件:

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 客戶端設置。

現在,在客戶端設備(要在其中顯示 RemoteApp 窗口)上配置 RDP 連接的快捷方式。

  1. 打開默認的遠程桌面連接客戶端(mstsc.exe)。輸入遠程桌面計算機的 DNS 名稱/IP 以及用於登錄的用戶名。
  2. (可選)在 RDP 客戶端的其餘選項卡上配置所需的遠程連接設置(本地設備重定向:驅動器、遠程桌面剪貼板、打印機等)
  3. 將配置的遠程連接設置保存到文件中*.RDP擴展名(另存為)
  4. 在任何文本編輯器中打開此 *.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
    
  5. 如果您需要使用附加命令行參數運行程序,請添加指令:
    RemoteApplicationCmdLine:s:COMMAND LINE PARAMETERS

    確保現有 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 憑據)。確認您信任 RDP 證書,RemoteApp 窗口將出現在您的桌​​面上。

要將 Microsoft Store 應用程序作為 RemoteApp 運行,請按以下格式在 RemoteApplicationProgram 字段中指定其名稱:

start shell:AppsFolderMicrosoft.WindowsCalculator_8wekyb3d8bbwe!App

在此示例中,APPX 名稱是從 PackageFamilyName 值複製的,我手動添加!應用程式在最後。

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

如果您發現經常需要創建快捷方式來啟動 RemoteApp,您可以使用免費的遠程應用工具https://github.com/kimmknight/remoteapptool)為您的客戶端輕鬆生成 RDP 或 MSI 安裝程序文件。該工具還允許設置文件關聯、更改 RemoteApp 項目的圖標和其他參數以及配置 RDP 主機設置(包括 RDP 會話超時)。

更多閱讀:為 Mac 配置 Windows 鍵盤,反之亦然

這種在運行 Windows 10/11 的桌面設備上發布 RemoteApp 的方法不需要部署單獨的 RDS 許可服務器和購買終端許可證 (RDS CAL)。但是,這樣一台計算機只能使用一個並發 RemoteApp 會話。您可以使用 RDP Wrapper 繞過 Windows 10 和 11 中並發 RDP 連接數的限制。