排查常见的 Azure 虚拟桌面代理问题

由于多种因素,Azure 虚拟桌面代理可能会导致连接问题:

  • 中转站上出现了错误,导致代理停止服务。
  • 与更新相关的问题。
  • 在代理安装过程中安装时出现问题,这会中断与会话主机的连接。

本文将指导你了解这些常见情况的解决方案以及如何解决连接问题。

注意

为了排查与会话连接和 Azure 虚拟桌面代理相关的问题,建议通过转到“事件查看器”“Windows 日志”>“应用程序”来查看会话主机虚拟机 (VM) 上的事件日志。 查找具有以下某一种源的事件,以确定问题:

  • WVD-Agent
  • WVD-Agent-Updater
  • RDAgentBootLoader
  • MsiInstaller

错误:RDAgentBootLoader 和/或远程桌面代理加载程序已停止运行

如果看到以下任何问题,则意味着加载代理的启动加载程序无法正确安装代理,并且代理服务未在会话主机 VM 上运行:

  • RDAgentBootLoader 已停止或未运行。
  • 远程桌面代理加载程序没有状态。

若要解决此问题,请启动 RDAgent 启动加载程序:

  1. “服务 ”窗口中,右键单击 远程桌面代理加载程序
  2. 选择“开始”。 如果此选项灰显,则你没有管理员权限。 需要获取这些权限才能启动服务。
  3. 等待 10 秒,然后右键单击 远程桌面代理加载程序
  4. 选择“刷新”。
  5. 如果服务在启动并刷新后停止,则可能会出现注册失败。 有关详细信息,请参阅 INVALID_REGISTRATION_TOKEN或EXPIRED_MACHINE_TOKEN

错误:INVALID_REGISTRATION_TOKEN 或 EXPIRED_MACHINE_TOKEN

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果看到 ID 为 3277 的事件并且说明为 INVALID_REGISTRATION_TOKENEXPIRED_MACHINE_TOKEN,则表示使用的注册密钥未被识别为有效。

若要解决此问题,请执行下列操作:

  1. 若要创建新注册密钥,请按照生成新的注册密钥中的步骤操作。

  2. 以管理员身份打开 PowerShell 提示符,并运行以下 cmdlet,将新的注册密钥添加到注册表。 请将 <RegistrationToken> 替换为生成的新注册令牌。

    $newKey = '<RegistrationToken>'
    
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\RDInfraAgent" -Name "IsRegistered" -Value 0 -Force
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\RDInfraAgent" -Name "RegistrationToken" -Value $newKey -Force
    
  3. 运行以下 cmdlet 重启 RDAgentBootLoader 服务:

    Restart-Service RDAgentBootLoader
    
  4. 运行以下 cmdlet 以验证是否已 IsRegistered 设置为 1 空白 RegistrationToken

    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\RDInfraAgent" -Name IsRegistered | FL IsRegistered
    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\RDInfraAgent" -Name RegistrationToken | FL RegistrationToken
    

    输出应类似于以下输出:

    IsRegistered : 1
    
    RegistrationToken : 
    
  5. 检查会话主机是否在主机池中可用。 如果不可用,请查看事件查看器条目,看看是否有任何错误导致代理无法启动。

错误:代理无法连接到中转站,出现 INVALID_FORM

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 INVALID_FORM 的事件,代理无法连接到中转站或到达特定终结点。 此问题可能是由某些防火墙或 DNS 设置引起的。

若要解决此问题,请检查是否可以访问称为 BrokerResourceIdURIBrokerResourceIdURIGlobal

  1. 打开注册表编辑器。

  2. 转到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RDInfraAgent

  3. 记下 BrokerResourceIdURIBrokerResourceIdURIGlobal

  4. 打开 Web 浏览器,在地址栏中输入值BrokerResourceIdURI,并将 /api/health 添加到末尾,例如https://rdbroker-g-us-r0.wvd.microsoft.com/api/health

  5. 在浏览器中打开另一个选项卡,在地址栏中输入你的值BrokerResourceIdURIGlobal,并将 /api/health 添加到末尾,例如https://rdbroker.wvd.microsoft.com/api/health

  6. 如果网络未阻止连接到中转站,则两个页面应成功加载并显示消息“RD 中转站处于正常状态”,如以下屏幕截图所示:

    已成功加载的中转站 URI 访问的屏幕截图。

    已成功加载的中转站全局 URI 访问的屏幕截图。

  7. 如果网络正在阻止中转站连接,则页面不会加载,如以下屏幕截图所示。

    加载的中转站访问失败的屏幕截图。

    加载的中转站全局访问失败的屏幕截图。

    必须取消阻止所需的终结点,然后重复步骤 4 到 7。 有关详细信息,请参阅所需 URL 的列表

  8. 如果遵循前面的步骤无法解决问题,请确保没有任何组策略与阻止代理到中转站连接的密码。 Azure 虚拟桌面使用与 Azure Front Door 相同的 TLS 1.2 密码。 有关详细信息,请参阅连接安全性

错误:3703

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3703 RD Gateway Url: is not accessible 的事件,则代理无法访问网关 URL。 若要成功连接到会话主机,必须允许发往所需 URL 的列表中的 URL 的网络流量。 此外,请确保防火墙或代理设置不会阻止这些 URL。 使用 Azure 虚拟桌面需要取消阻止这些 URL。

要解决此问题,请运行所需 URL 检查工具来验证是否可以访问所需的 URL。 如果使用Azure 防火墙,请参阅“使用Azure 防火墙保护 Azure 虚拟桌面部署Azure 防火墙 DNS 设置,详细了解如何为 Azure 虚拟桌面配置它。

错误:3019

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果看到 ID 为 3019 的事件,代理无法访问 Web 套接字传输 URL。 若要成功连接到会话主机,并允许网络流量绕过这些限制,则必须取消阻止所需 URL 的列表中列出的 URL。 请与网络团队合作,以确保防火墙、代理和 DNS 设置未阻止这些 URL。 还可以检查网络跟踪日志,以确定正在阻止 Azure 虚拟桌面服务的位置。 如果为此特定问题创建一个 Microsoft 支持案例,请确保将网络跟踪日志附加到该请求。

错误:InstallationHealthCheckFailedException

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 InstallationHealthCheckFailedException 的事件,则堆栈侦听器不起作用,因为终端服务器已切换堆栈侦听器的注册表项。

若要解决此问题,请执行下列操作:

  1. 检查堆栈侦听器是否正常工作
  2. 如果堆栈侦听器不起作用,请手动卸载并重新安装堆栈组件

错误:ENDPOINT_NOT_FOUND

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 ENDPOINT_NOT_FOUND 的事件,则代理找不到用于建立连接的终结点。 发生这种情况的原因可能会是以下某一种:

  • 主机池中没有任何主机会话 VM。
  • 主机池中的主机会话 VM 未处于活动状态。
  • 主机池中的所有会话主机 VM 都超过了最大会话限制。
  • 主机池中的 VM 都未运行代理服务。

若要解决此问题,请执行下列操作:

  1. 确保 VM 已开机且未从主机池中删除。
  2. 确保 VM 未超过最大会话限制。
  3. 确保代理服务正在运行并且堆栈侦听器运行正常
  4. 确保代理可以连接到中转站
  5. 确保 VM 具有有效注册令牌
  6. 确保 VM 注册令牌未过期

错误:InstallMsiException

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 InstallMsiException 的事件,则安装程序已在尝试安装代理时运行另一个应用程序,或者组策略正在阻止 msiexec.exe 运行。

若要检查组策略是否阻止 msiexec.exe 运行:

  1. 通过从提升的命令提示符运行 rsop.msc,打开策略的结果集。

  2. 弹出的“策略结果集”窗口中,转到管理模板>Windows 组件>Windows 安装程序”关闭 Windows Installer。> 如果状态为 “已启用”,请与 Active Directory 团队协作,以允许 msiexec.exe 运行。

    策略结果集中 Windows Installer 策略的屏幕截图。

    注意

    此列表不是完整的策略列表,而只是我们目前知道的策略。

错误:Win32Exception

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 InstallMsiException 的事件,策略会阻止 cmd.exe 启动。 阻止此程序会阻止运行控制台窗口,而只要代理更新就需要使用控制台窗口来重启服务。

  1. 通过从提升的命令提示符运行 rsop.msc,打开策略的结果集。
  2. 弹出的“策略结果集”窗口中,转到> 如果状态为 “已启用”,请与 Active Directory 团队协作,以允许 cmd.exe 运行。

错误:堆栈侦听器在 Windows 10 2004 会话主机 VM 上不起作用

在会话主机 VM 上的命令提示符下,运行qwinsta.exe并记下列旁边rdp-sxsSESSIONNAME显示的版本号。 STATE如果列rdp-tcprdp-sxs条目未Listen列出,或者未rdp-tcprdp-sxs列出条目,则表示存在堆栈问题。 堆栈更新将与代理更新一起安装,但如果安装失败,Azure 虚拟桌面侦听器将无法正常工作。

若要解决此问题,请执行下列操作:

  1. 打开注册表编辑器。

  2. 转到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

  3. 在下方 WinStations,你可能会看到不同堆栈版本的多个文件夹。 选择与在命令提示符中运行时 qwinsta.exe 看到的版本信息匹配的文件夹。

    • 查找 fReverseConnectMode 并确保其数据值为 1。 此外,请确保已 fEnableWinStation 设置为 1

      fReverseConnectMode 的屏幕截图。

    • 如果未fReverseConnectMode设置为,请选择1并在其值字段中输入fReverseConnectMode1

    • 如果未 fEnableWinStation 设置为 1,请选择 fEnableWinStation 并输入 1 其值字段。

  4. 对在命令提示符下运行 qwinsta.exe 时看到的版本信息匹配的每个文件夹重复上述步骤。

    提示

    若要一次更改多个 VM 的 fReverseConnectModefEnableWinStation 模式,可以执行以下作之一:

    • 从已正常运行的计算机中导出注册表项,并将其导入到需要此更改的所有其他计算机。
    • 创建组策略对象 (GPO) 以便为需要更改的计算机设置注册表项值。
  5. 重启会话主机 VM。

  6. 打开注册表编辑器。

  7. 转到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ClusterSettings

  8. 在下面 ClusterSettings,找到 SessionDirectoryListener 并确保其数据值为 rdp-sxs<version number,其中 <version number> 与在命令提示符中运行时 qwinsta.exe 看到的版本信息匹配。

  9. 如果未 SessionDirectoryListener 设置为 rdp-sxs<version number,则需要按照“问题”中的 步骤作,此处未列出或未解决 部分。

错误:DownloadMsiException

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3277 DownloadMsiException 的事件,则磁盘上没有足够的空间用于 RDAgent。

若要解决此问题,请通过以下方式在磁盘上腾出空间:

  • 删除不再使用的文件。
  • 提高会话主机 VM 的存储容量。

错误:代理无法更新,出现 MissingMethodException

在会话主机 VM 上,转到“事件查看器”“Windows日志”>“应用程序”。 如果在说明中看到 ID 为 3389 MissingMethodException: Method not found 的事件,则 Azure 虚拟桌面代理未成功更新并还原到早期版本。 此问题可能发生,因为 VM 上当前安装的 .NET Framework 的版本号低于 4.7.2。 若要解决此问题,需要通过按照 .NET Framework 文档中的安装说明操作来将 .NET 升级到版本 4.7.2 或更高版本。

错误:会话主机 VM 停滞在升级状态

如果为主机池中的会话主机列出的状态始终显示为“不可用”或“正在升级”,则表明代理或堆栈未成功安装。

若要解决此问题,请首先重新安装并行堆栈:

  1. 以管理员身份登录到会话主机 VM。

  2. 在提升的 PowerShell 提示符下,运行qwinsta.exe并记下列旁边rdp-sxsSESSIONNAME显示的版本号。 STATE如果列rdp-tcprdp-sxs条目未Listen列出,或者未rdp-tcprdp-sxs列出条目,则表示存在堆栈问题。

  3. 运行以下命令以停止 RDAgentBootLoader 服务:

    Stop-Service RDAgentBootLoader
    
  4. 转到 控制面板>Programs>程序和功能,或在 Windows 11 上,转到“设置应用应用”。>

  5. 卸载最新版本的 远程桌面服务 SxS 网络堆栈 或注册表编辑器 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations 中列出的版本,其值 ReverseConnectionListener下。

  6. 返回 PowerShell 提示符,运行以下 cmdlet,将会话主机 VM 上可用的最新安装程序的文件路径添加到变量并列出其名称:

    $sxsMsi = (Get-ChildItem "$env:SystemDrive\Program Files\Microsoft RDInfra\" | ? Name -like SxSStack*.msi | Sort-Object CreationTime -Descending | Select-Object -First 1).FullName
    $sxsMsi
    
  7. 通过运行以下 cmdlet,在会话主机 VM 上安装可用于并行堆栈的最新安装程序:

    msiexec /i $sxsMsi
    
  8. 重启会话主机 VM。

  9. 在命令提示符下,再次运行 qwinsta.exe 并验证 STATErdp-tcprdp-sxs 条目是否为 Listen。 如果未显示,则需要重新注册 VM 并重新安装代理组件。

错误:会话主机停滞在不可用状态

如果会话主机 VM 停滞在“不可用”状态,则表示 VM 未通过运行状况检查中列出的运行状况检查之一。 必须解决导致 VM 无法通过运行状况检查的问题。

错误:会话主机卡在“需要协助”状态

多个运行状况检查可能导致会话主机 VM 停滞在“需要帮助”状态:UrlsAccessibleCheck、MetaDataServiceCheckMonitoringAgentCheck

UrlsAccessibleCheck

如果会话主机未通过 UrlsAccessibleCheck 运行状况检查,则需要确定 部署当前阻止的所需 URL 。 知道哪个 URL 被阻止后,识别哪个设置正在阻止该 URL,并删除该设置。

服务阻止必需 URL 的原因有两个:

  • 有一个处于活动状态的防火墙阻止了大多数出站流量以及对必需 URL 的访问。
  • 本地 hosts 文件阻止了必需的网站。

若要解决防火墙相关的问题,请添加一个规则,在其中允许出站连接到与被阻止 URL 关联的 TCP 端口 80/443。

如果本地 hosts 文件阻止了必需的 URL,请确保设备上的 Hosts 文件中不包含任何必需的 URL。 可在以下注册表项和值中找到 Hosts 文件位置:

项:HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

类型:REG_EXPAND_SZ

名称:DataBasePath

MetaDataServiceCheck

如果会话主机未通过 MetaDataServiceCheck 运行状况检查,则服务无法访问 IMDS 终结点。 若要解决此问题,需要执行以下作:

  • 重新配置网络、防火墙或代理设置,以取消阻止 IP 地址 169.254.169.254。
  • 确保 HTTP 客户端在查询 IMDS 时绕过 VM 中的 Web 代理。 我们建议在 VM 内用于处理出站网络流量方向的任何防火墙策略中允许必需的 IP 地址。

如果问题由 Web 代理导致,请在 Web 代理的配置中添加 169.254.169.254 的例外。 若要添加此例外,请打开权限提升的命令提示符或 PowerShell 会话并运行以下命令:

netsh winhttp set proxy proxy-server="http=<customerwebproxyhere>" bypass-list="169.254.169.254"

MonitoringAgentCheck

如果会话主机未通过 MonitoringAgentCheck 运行状况检查,则需要检查远程桌面服务基础结构日内瓦代理,并验证它是否在会话主机上正常运行:

  1. 验证会话主机上是否安装了远程桌面服务基础结构 Geneva 代理。 可以在会话主机上的已安装程序列表中对此进行验证。 如果看到已安装此代理的多个版本,请卸载旧版本,并仅保留已安装的最新版本。
  2. 如果在会话主机上找不到安装的远程桌面服务基础结构日内瓦代理,请查看位于 C:\Program Files\Microsoft RDInfra\GenevaInstall.txt 下的日志,并查看安装是否因错误而失败。
  3. 验证是否已创建计划的任务 GenevaTask_<version> 。 必须启用并运行此计划任务。 如果没有,请使用.msi名为 Microsoft.RDInfra.Geneva.Installer-x64-version<>.msi 的文件重新安装代理,该文件在 C:\Program Files\Microsoft RDInfra提供。

错误:找不到连接:RDAgent 没有到中转站的活动连接

会话主机 VM 可能处于连接限制,不能接受新连接。

若要解决此问题,请执行以下操作之一:

  • 减少最大会话限制。 此更改可确保资源更均匀地分布在会话主机之间,并防止资源耗尽。
  • 增加会话主机 VM 的资源容量。

错误:正在操作 Pro VM 或其他不受支持的 OS

只有 Windows 企业版或 Windows Server SKU 支持并行堆栈,这就意味着 Pro VM 等操作系统不支持。 如果没有企业或服务器 SKU,堆栈将安装在 VM 上,但未激活,因此在命令行中运行时 qwinsta.exe 不会显示它。

若要解决此问题,请使用支持的操作系统创建会话主机 VM

错误:NAME_ALREADY_REGISTERED

会话主机 VM 的名称已经注册,可能是重复项。

若要解决此问题,请执行下列操作:

  1. 按照步骤从 主机池中删除会话主机。

  2. 再创建一个 VM。 请确保为此 VM 选择独一无二的名称。

  3. 转到 Azure 门户并打开 VM 所在的主机池的“概述”页。

  4. 打开“会话主机”选项卡,并检查以确保所有会话主机都在该主机池中。

  5. 等待 5-10 分钟,会话主机状态显示 “可用”。

    可用会话主机的屏幕截图。

错误:在操作系统启动时,RDAgentBootLoader 启动超时

如果出现以下任何问题,远程桌面代理启动加载程序(RDAgentBootLoader)服务在 OS 启动时的速度不够快。 这会使会话主机看起来不正常并阻止用户连接:

  • RDAgentBootLoader 已停止或未运行。
  • 会话主机状态显示 “需要帮助 ”或 “不可用”。
  • 用户在使用“连接时启动”功能时无法连接。
  • Windows 服务控制管理器记录服务启动超时,例如事件 7000 或事件 7011。

要解决此问题,请尝试执行以下步骤:

将 RDAgentBootLoader 设置为自动(延迟启动)

这会延迟服务启动,直到初始启动压力消退之后。

  1. 打开 服务 (services.msc)。
  2. 找到 远程桌面代理加载程序
  3. 右键单击该服务,然后选择“ 属性”。
  4. 启动类型设置为“自动”(延迟启动)。
  5. 选择“应用”,然后选择“确定”

增加服务启动超时时间

这为 Windows 提供了更多时间来报告服务为正在运行。

  1. 以管理员身份打开命令提示符。
  2. 运行下面的命令:
reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v ServicesPipeTimeout /t REG_DWORD /d 60000 /f

提示

从 60,000 毫秒(60s)开始,并根据需要进行优化。 需要重新启动。

验证启动性能

确保 VM 满足推荐的 IOPS,并且映像启动任务(例如防病毒扫描、大量登录脚本或大型 GPO)在启动时不会耗尽代理资源。

验证所需的服务终结点

如果主机仍显示 “需要帮助 ”或 “不可用”,请运行 WVDAgentUrlTool.exe 并修正任何失败的终结点。 有关详细信息,请参阅此文章

验证

  • 重新启动会话主机。
  • 确认主机在启动后的几分钟内转换为 “可用 ”。
  • 查看 事件查看器 ,确保不会显示新的服务启动超时。

后续步骤

如果问题仍然存在,请查看注册令牌运行状况和重复的主机条目。

从重复或过期注册中恢复

适用于以下错误:NAME_ALREADY_REGISTEREDEXPIRED_MACHINE或事件 3277。

  1. 在 Azure 门户中,打开主机池,并删除受影响会话主机的任何重复或过时条目。
  2. 为主机池生成新的注册密钥。
  3. 在会话主机上,卸载 Azure 虚拟桌面代理和远程桌面代理加载程序(BootLoader)。
  4. 重新安装最新的代理和 BootLoader 包。
  5. 使用新的注册密钥重新注册会话主机。
  6. 验证主机报告 是否可用 并接受连接。

如果失败,请遵循 此处的指导完成代理和 Bootloader 的全新重新安装。

你的问题未在此处列出或未解决

如果在本文中找不到你的问题,或者说明内容没有帮助,建议你卸载、重新安装并重新注册 Azure 虚拟桌面代理。 本部分的说明介绍了如何通过以下方式将会话主机 VM 重新注册到 Azure 虚拟桌面服务:

  1. 卸载所有代理、启动加载程序和堆栈组件。
  2. 从主机池中删除会话主机。
  3. 为 VM 生成新的注册密钥。
  4. 重新安装 Azure 虚拟桌面代理和启动加载程序。

如果你遇到以下一个或多个场景,请按照本部分中的这些说明进行操作:

  • 会话主机 VM 的状态停滞为“升级”或“不可用”。
  • 堆栈侦听器不起作用,并且你在 Windows 10 版本 1809、1903 或 1909 上运行。
  • 收到 EXPIRED_REGISTRATION_TOKEN 错误。
  • 未看到会话主机 VM 出现在会话主机列表中。
  • 在“服务”控制台中看不到“远程桌面代理加载程序”服务。
  • 在任务管理器中,RdAgentBootLoader 组件未显示为正在运行的进程。
  • 在自定义映像 VM 上收到“连接代理无法验证设置”错误。
  • 本文中前面的部分未解决你的问题。

步骤 1:卸载所有代理、启动加载程序和堆栈组件程序

在重新安装代理、引导加载程序和堆栈之前,必须先从 VM 卸载任何现有的组件。 若要卸载所有代理、启动加载程序和堆栈组件程序,请执行以下操作:

  1. 以管理员身份登录到会话主机 VM。

  2. 转到 控制面板>Programs>程序和功能,或在 Windows 11 上,转到“设置应用应用”。>

  3. 卸载以下程序,然后重启会话主机 VM:

    注意

    卸载 远程桌面服务 SxS 网络堆栈时,系统会提示 关闭远程桌面服务和远程桌面服务UserMode 端口重定向程序 。 如果使用 RDP 连接到会话主机 VM,请选择“ 不要关闭应用程序”,然后选择“ 确定”。 否则,RDP 连接将不起作用。

    显示应关闭远程桌面服务和远程桌面服务 UserMode 端口重定向器的提示的屏幕截图。

    • 远程桌面代理启动加载程序
    • 远程桌面服务基础结构代理
    • 远程桌面服务基础结构日内瓦代理
    • 远程桌面服务 SxS 网络堆栈

    注意

    你可能会看到这些程序的多个实例。 请确保将它们全部删除。

    卸载程序的屏幕截图。

步骤 2:从主机池删除会话主机

在从主机池中删除会话主机时,该会话主机不再注册到该主机池。 此更改相当于重置会话主机注册。 若要从主机池删除会话主机,请执行以下操作:

  1. 登录 Azure 门户

  2. 在搜索栏中,键入“Azure 虚拟桌面”,然后选择匹配的服务条目。

  3. 选择“主机池”,然后选择会话主机 VM 所在主机池的名称。

  4. 选择“会话主机”,以查看该主机池中所有会话主机的列表。

  5. 查看会话主机列表,并勾选要删除的会话主机旁边的框。

  6. 选择“删除” 。

    从主机池中删除 VM 的屏幕截图。

步骤 3:为 VM 生成新的注册密钥

必须生成一个新的注册密钥,该密钥用于将会话 VM 重新注册到主机池和服务。 若要为 VM 生成新注册密钥,请执行以下操作:

  1. 登录 Azure 门户

  2. 在搜索栏中,键入“Azure 虚拟桌面”,然后选择匹配的服务条目。

  3. 选择“主机池”,然后选择会话主机 VM 所在主机池的名称。

  4. 在“概述”边栏选项卡上,选择“注册密钥”。

    门户中注册密钥的屏幕截图。

  5. 打开“注册密钥”选项卡,然后选择“生成新密钥” 。

  6. 输入到期日期,然后选择“ 确定”。

    注意

    到期日期可以是自生成时间和日期起最短不少于 1 小时并且最长不超过 27 天的时间和日期。 仅在你需要时才生成注册密钥。

  7. 将新生成的密钥复制到剪贴板,或者下载文件。 稍后需要此密钥。

步骤 4:重新安装代理和启动加载程序

重新安装最新版本的代理和启动加载程序还会自动安装并行堆栈和 Geneva 监视代理。 若要重新安装代理和启动加载程序,请执行以下步骤。 这是非验证环境中 Azure 虚拟桌面代理的最新可下载版本。 有关推出新版本代理的详细信息,请参阅 Azure 虚拟桌面代理中的新增功能

  1. 以管理员身份登录会话主机 VM,并为会话主机 VM 运行代理安装程序和引导加载程序:

    提示

    对于下载的每个代理和启动加载程序安装程序,可能需要取消阻止它们。 右键单击每个文件,然后选择“>确定”。

  2. 在安装程序要求提供注册令牌时,请从剪贴板粘贴注册密钥。

    粘贴的注册令牌的屏幕截图。

  3. 运行该启动加载程序的安装程序。

  4. 重启会话 VM。

  5. 登录 Azure 门户

  6. 在搜索栏中,输入“Azure 虚拟桌面”,然后选择匹配的服务条目。

  7. 选择“主机池”,然后选择会话主机 VM 所在主机池的名称。

  8. 选择“会话主机”,以查看该主机池中所有会话主机的列表。

  9. 现在,应该会看到在主机池中注册的会话主机,其状态为“可用”。

    可用会话主机的屏幕截图。

删除 DisableRegistryTools 注册表项

如果已执行所有四个步骤,但代理仍然不起作用,可能是因为 DisableRegistryTools 注册表项在以下位置之一中启用:

  • HKU: \DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools = 1
  • HKU: \S-1-5-18\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools = 1
  • HKCU: \SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools = 1

此注册表项阻止代理安装并行堆栈,这会导致 installMSIException 错误。 此错误导致会话主机停滞在不可用状态。

若要解决此问题,需要删除密钥:

  1. DisableRegistryTools从前面列出的三个位置中删除密钥。
  2. 应用和功能文件夹中卸载和删除受影响的并行堆栈安装。
  3. 删除受影响的并行堆栈的注册表项。
  4. 重新启动 VM。
  5. 启动代理,让它自动安装并行堆栈。

后续步骤

如果问题仍然存在,请创建支持案例,并包括有关所遇问题的详细信息,以及任何为尝试解决此问题所采取的操作。 以下列表包括了其他可用于排查 Azure 虚拟桌面部署中的问题的资源。