为用户设置远程桌面 Web 客户端

远程桌面 Web 客户端允许用户通过兼容的 Web 浏览器访问组织的远程桌面基础结构。 无论他们身在何处,他们都能够像与本地 PC 一样与远程应用程序或桌面交互。 设置远程桌面 Web 客户端后,您的用户只需提供他们可以访问客户端的 URL、他们的凭据和支持的 Web 浏览器即可。

重要

Web 客户端支持使用 Microsoft Entra 应用程序代理,但根本不支持 Web 应用程序代理。 有关详细信息,请参阅 将 RDS 与应用程序代理服务结合使用

设置 Web 客户端所需的内容

在开始之前,请记住以下事项:

  • 确保 远程桌面部署 具有在 Windows Server 2016 或 2019 上运行的 RD 网关、RD 连接代理和 RD Web Access。

  • 确保您的部署配置为 按用户客户端访问许可证 (CAL) 而不是按设备,否则将消耗所有许可证。

  • 在 RD 网关上安装 Windows 10 KB4025334更新 。 以后的累积更新可能已包含此知识库。

  • 确保为 RD 网关和 RD Web 访问角色配置了公共受信任的证书。

  • 确保您的用户连接到的任何计算机都运行以下作系统版本之一:

    • Windows 10 或更高版本
    • Windows Server 2016 或更高版本

连接到 Windows Server 2016(或更高版本)和 Windows 10(版本 1611 或更高版本)时,您将看到更好的性能。

如果您在预览期间使用了 Web 客户端并安装了 1.0.0 或更早版本,则必须先卸载旧客户端,然后再迁移到新版本。 如果您收到一条错误,指出“Web 客户端是使用旧版本的 RDWebClientManagement 安装的,必须先删除,然后才能部署新版本”,请执行以下步骤:

  1. 打开提升的 PowerShell 提示符。
  2. 运行 Uninstall-Module RDWebClientManagement 以卸载新模块。
  3. 关闭并重新打开提升的 PowerShell 提示符。
  4. Install-Module RDWebClientManagement -RequiredVersion <旧版本>运行以安装旧模块。
  5. 运行 Uninstall-RDWebClient 以卸载旧的 Web 客户端。
  6. 运行 Uninstall-Module RDWebClientManagement 以卸载旧模块。
  7. 关闭并重新打开提升的 PowerShell 提示符。
  8. 继续执行常规安装步骤,如下所示。

如何发布远程桌面 Web 客户端

要首次安装 Web 客户端,请执行以下步骤:

  1. 在 RD 连接代理服务器上,获取用于远程桌面连接的证书并将其导出为 .cer 文件。 将 .cer 文件从 RD 连接代理复制到运行 RD Web 角色的服务器。

  2. 在 RD Web 访问服务器上,打开提升的 PowerShell 提示符。

  3. 在 Windows Server 2016 上,请更新 PowerShellGet 模块,因为收件箱版本不支持安装 Web 客户端管理模块。 若要更新 PowerShellGet,请运行以下 cmdlet:

    Install-Module -Name PowerShellGet -Force
    

    注释

    要访问 PowerShell 库,需要传输层安全性 (TLS) 1.2 或更高版本。 使用以下命令在 PowerShell 会话中启用 TLS 1.2:

    [Net.ServicePointManager]::SecurityProtocol =
    [Net.ServicePointManager]::SecurityProtocol -bor
    [Net.SecurityProtocolType]::Tls12
    

    重要

    您需要先重启 PowerShell,更新才能生效,否则该模块可能无法工作。

  4. 使用以下 cmdlet 从 PowerShell 库安装远程桌面 Web 客户端管理 PowerShell 模块:

    Install-Module -Name RDWebClientManagement
    
  5. 之后,运行以下 cmdlet 以下载最新版本的远程桌面 Web 客户端:

    Install-RDWebClientPackage
    
  6. 接下来,运行此 cmdlet,并将括号内的值替换为您从 RD 代理复制的文件的路径 .cer

    Import-RDWebClientBrokerCert <.cer file path>
    
  7. 最后,运行此 cmdlet 以发布远程桌面 Web 客户端:

    Publish-RDWebClientPackage -Type Production -Latest
    

    确保您可以使用您的服务器名称(格式为 https://server_FQDN/RDWeb/webclient/index.html. 请务必使用 URL 中与 RD Web Access 公有证书匹配的服务器名称(通常是服务器 FQDN)。

    注释

    运行 Publish-RDWebClientPackage cmdlet 时,您可能会看到一条警告,指出不支持每设备 CAL,即使您的部署配置为每用户 CAL。 如果您的部署使用每用户 CAL,则可以忽略此警告。 我们显示它以确保您了解配置限制。

  8. 当您准备好让用户访问 Web 客户端时,只需向他们发送您创建的 Web 客户端 URL。

注释

若要查看 RDWebClientManagement 模块支持的所有 cmdlet 的列表,请在 PowerShell 中运行以下 cmdlet:

Get-Command -Module RDWebClientManagement

如何更新远程桌面 Web 客户端

当有新版本的远程桌面 Web 客户端可用时,请按照以下步骤使用新客户端更新部署:

  1. 在 RD Web 访问服务器上打开提升的 PowerShell 提示符,并运行以下 cmdlet 以下载 Web 客户端的最新可用版本:

    Install-RDWebClientPackage
    
  2. 或者,您可以通过运行以下 cmdlet 在正式发布之前发布客户端以供测试:

    Publish-RDWebClientPackage -Type Test -Latest
    

    客户端应显示在与您的 Web 客户端 URL 对应的测试 URL 上(例如, <https://server_FQDN/RDWeb/webclient-test/index.html>)。

  3. 通过运行以下 cmdlet 为用户发布客户端:

    Publish-RDWebClientPackage -Type Production -Latest
    

    这将在所有用户重新启动网页时替换客户端。

如何卸载远程桌面 Web 客户端

要删除 Web 客户端的所有跟踪,请执行以下步骤:

  1. 在 RD Web 访问服务器上,打开提升的 PowerShell 提示符。

  2. 取消发布测试和生产客户端,卸载所有本地包并删除 Web 客户端设置:

    Uninstall-RDWebClient
    
  3. 卸载远程桌面 Web 客户端管理 PowerShell 模块:

    Uninstall-Module -Name RDWebClientManagement
    

如何在没有 Internet 连接的情况下安装远程桌面 Web 客户端

按照以下步骤将 Web 客户端部署到没有 Internet 连接的 RD Web 访问服务器。

注释

在没有 Internet 连接的情况下进行安装在 RDWebClientManagement PowerShell 模块的 1.0.1 及更高版本中可用。 您仍然需要一台可以访问 Internet 的管理员 PC 来下载必要的文件,然后再将它们传输到离线服务器。 最终用户 PC 目前需要互联网连接。 这将在客户端的未来版本中得到解决,以提供完整的脱机方案。

从可以访问 Internet 的设备

  1. 打开 PowerShell 窗口。

  2. 从 PowerShell 库导入远程桌面 Web 客户端管理 PowerShell 模块:

    Import-Module -Name RDWebClientManagement
    
  3. 下载最新版本的远程桌面 Web 客户端,以便在其他设备上进行安装:

    Save-RDWebClientPackage "C:\WebClient\"
    
  4. 下载最新版本的 RDWebClientManagement PowerShell 模块:

    Find-Module -Name "RDWebClientManagement" -Repository "PSGallery" | Save-Module -Path "C:\WebClient\"
    
  5. 将“C:\WebClient”的内容复制到 RD Web Access 服务器。

从 RD Web 访问服务器

按照 如何发布远程桌面 Web 客户端中的说明作,将步骤 4 和 5 替换为以下内容。

  1. 您有两个选项来检索最新的 Web 客户端管理 PowerShell 模块:

    1. 导入远程桌面 Web 客户端管理 PowerShell 模块:

      Import-Module -Name RDWebClientManagement
      
    2. 将下载的 RDWebClientManagement 文件夹复制到 $env:psmodulePath 下列出的本地 PowerShell 模块文件夹之一,或将包含下载文件的文件夹的路径添加到 $env:psmodulePath

  2. 从本地文件夹部署最新版本的远程桌面 Web 客户端(替换为相应的 zip 文件):

    Install-RDWebClientPackage -Source "C:\WebClient\rdwebclient-1.0.1.zip"
    

在 Windows Server 2019 中连接到没有 RD 网关的 RD 代理

本节介绍如何在 Windows Server 2019 中启用与 RD 代理的 Web 客户端连接,而无需 RD 网关。

设置 RD Broker 服务器

如果没有绑定到 RD Broker 服务器的证书,请执行以下步骤

  1. 打开 Server Manager>Remote Desktop Services

  2. Deployment Overview (部署概述 ) 部分中,选择 Tasks (任务 ) 下拉菜单。

  3. 选择 Edit Deployment Properties(编辑部署属性),此时将打开一个名为 Deployment Properties 的新窗口。

  4. Deployment Properties (部署属性) 窗口中,选择左侧菜单中的 Certificates (证书 )。

  5. 在证书级别列表中,选择 RD 连接代理 - 启用单点登录。 您有两个选项:(1) 创建新证书或 (2) 现有证书。

如果以前有证书绑定到 RD Broker 服务器,请按照以下步骤作

  1. 打开绑定到 Broker 的证书并复制 Thumbprint 值。

  2. 若要将此证书绑定到安全端口 3392,请打开提升的 PowerShell 窗口并运行以下命令,将 “< thumbprint >” 替换为从上一步复制的值:

    netsh http add sslcert ipport=0.0.0.0:3392 certhash="<thumbprint>" certstorename="Remote Desktop" appid="{00000000-0000-0000-0000-000000000000}"
    

    注释

    要检查证书是否正确绑定,请运行以下命令:

    netsh http show sslcert
    

    在 SSL 证书绑定列表中,确保将正确的证书绑定到端口 3392。

  3. 打开 Windows 注册表 (regedit),转到 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 并找到密钥 WebSocketURI。 接下来,将值设置为 https://+:3392/rdp/

设置 RD 会话主机

如果 RD 会话主机服务器与 RD 代理服务器不同,请执行以下步骤:

  1. 为 RD 会话主机创建证书,打开它,然后复制 Thumbprint 值。

  2. 若要将此证书绑定到安全端口 3392,请打开提升的 PowerShell 窗口并运行以下命令,将 “< thumbprint >” 替换为从上一步复制的值:

    netsh http add sslcert ipport=0.0.0.0:3392 certhash="<thumbprint>" appid="{00000000-0000-0000-0000-000000000000}"
    

    注释

    要检查证书是否正确绑定,请运行以下命令:

    netsh http show sslcert
    

    在 SSL 证书绑定列表中,确保将正确的证书绑定到端口 3392。

  3. 打开 Windows 注册表 (regedit) 并导航到 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 并找到密钥 WebSocketURI。 该值必须设置为 https://+:3392/rdp/

一般观察

确保 RD 会话主机和 RD 代理服务器都运行 Windows Server 2019。

确保为 RD 会话主机和 RD 代理服务器配置了公有可信证书。

注释

如果 RD 会话主机和 RD Broker 服务器共享同一台计算机,请仅设置 RD Broker 服务器证书。 如果 RD 会话主机和 RD 代理服务器使用不同的计算机,则必须为两者配置唯一证书。

每个证书的使用者备用名称 (SAN) 必须设置为计算机的完全限定域名 (FQDN)。 公用名 (CN) 必须与每个证书的 SAN 匹配。

如何为远程桌面 Web 客户端用户预配置设置

本部分介绍如何使用 PowerShell 配置远程桌面 Web 客户端部署的设置。 这些 PowerShell cmdlet 控制用户根据组织的安全问题或预期工作流程更改设置的能力。 以下设置都位于 Web 客户端的 Settings 侧面板中。

禁止遥测

默认情况下,用户可以选择启用或禁用发送到 Microsoft 的遥测数据的收集。 有关 Microsoft 收集的遥测数据的信息,请通过 “关于 ”侧面板中的链接参阅我们的隐私声明。

作为管理员,您可以选择使用以下 PowerShell cmdlet 禁止收集部署的遥测数据:

Set-RDWebClientDeploymentSetting -Name "SuppressTelemetry" $true

默认情况下,用户可以选择启用或禁用遥测。 $false 的布尔值将与默认客户端行为匹配。 布尔值 $true 禁用遥测并限制用户启用遥测。

远程资源启动方法

注释

此设置目前仅适用于 RDS Web 客户端,不适用于 Azure 虚拟桌面 Web 客户端。

默认情况下,用户可以选择启动远程资源 (1) 在浏览器中,或者 (2) 通过下载 .rdp 文件以使用其计算机上安装的另一个客户端进行处理。 作为管理员,您可以选择使用以下 PowerShell 命令限制部署的远程资源启动方法:

Set-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser" ($true|$false)

默认情况下,用户可以选择任一启动方法。 布尔值 $true 将强制用户在浏览器中启动资源。 布尔值 $false 强制用户通过下载 .rdp 文件来启动资源,以便使用本地安装的 RDP 客户端进行处理。

将 RDWebClientDeploymentSetting 配置重置为默认值

要将部署级别 Web 客户端设置重置为默认配置,请运行以下 PowerShell cmdlet 并使用 -name 参数指定要重置的设置:

Reset-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser"
Reset-RDWebClientDeploymentSetting -Name "SuppressTelemetry"

故障排除

如果用户在首次打开 Web 客户端时报告以下任何问题,以下部分将说明如何修复这些问题。

如果用户的浏览器在尝试访问 Web 客户端时显示安全警告,该怎么办

RD Web 访问角色可能未使用受信任的证书。 确保 RD Web 访问角色配置了公开信任的证书。

如果这不起作用,则 Web 客户端 URL 中的服务器名称可能与 RD Web 证书提供的名称不匹配。 确保您的 URL 使用托管 RD Web 角色的服务器的 FQDN。

如果用户无法使用 Web 客户端连接到资源,即使他们可以看到 All Resources (所有资源) 下的项目,该怎么办

如果用户报告他们无法与 Web 客户端连接,即使他们可以看到列出的资源,请检查以下事项:

  • RD 网关角色是否已正确配置为使用受信任的公共证书?
  • RD 网关服务器是否安装了所需的更新? 确保您的服务器已安装 KB4025334 更新

如果用户在尝试连接时收到“收到意外的服务器身份验证证书”错误消息,则消息会显示证书的指纹。 使用该指纹搜索 RD Broker 服务器的证书管理器,以查找正确的证书。 验证证书是否配置为用于远程桌面部署属性页中的 RD 代理角色。 确保证书未过期后,将文件格式的 .cer 证书复制到 RD Web Access 服务器,并在 RD Web Access 服务器上运行以下命令,并将括号内的值替换为证书的文件路径:

Import-RDWebClientBrokerCert <certificate file path>

诊断控制台日志的问题

如果您无法根据本文中的故障排除说明解决问题,您可以尝试通过观察浏览器中的控制台登录来自行诊断问题的根源。 Web 客户端提供了一种在使用 Web 客户端时记录浏览器控制台日志活动的方法,以帮助诊断问题。

  • 选择右上角的省略号,然后导航到下拉菜单中的 About 页面。
  • Capture support information (捕获支持信息 ) 下,选择 Start recording (开始录制 ) 按钮。
  • 在生成您尝试诊断的问题的 Web 客户端中执行一个或多个作。
  • 导航到 About 页面,然后选择 Stop recording
  • 您的浏览器将自动下载一个名为 RD Console Logs.txt的 .txt 文件。 此文件包含在重现目标问题时生成的完整控制台日志活动。

您也可以通过浏览器直接访问控制台。 控制台位于开发人员工具下。 例如,您可以通过按 F12 键或选择省略号,然后导航到 更多工具>开发人员工具来访问 Microsoft Edge 中的登录。

获取有关 Web 客户端的帮助

如果遇到本文中的信息无法解决的问题,可以在 Microsoft 技术社区的 Azure 虚拟桌面论坛上报告。