你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

会话主机虚拟机配置

重要

本教程的内容适用于包含 Azure 资源管理器 Azure 虚拟桌面对象的 Azure 虚拟桌面。 如果你使用的是不包含 Azure 资源管理器对象的 Azure 虚拟桌面(经典),请参阅此文

使用本文来排查在配置 Azure 虚拟桌面会话主机虚拟机 (VM) 时遇到的问题。

提供反馈

请访问 Azure 虚拟桌面技术社区,与产品团队和活跃的社区成员共同探讨 Azure 虚拟桌面服务。

VM 未加入域

如果在将虚拟机 (VM) 加入到域时遇到问题,请按照以下说明进行操作。

错误:凭据错误

原因:在 Azure 资源管理器模板接口修补程序中输入凭据时,出现拼写错误。

修复:请采取以下措施之一解决此问题。

错误:等待用户输入超时

原因:用于完成域加入的帐户可能具有多重身份验证 (MFA)。

修复:请采取以下措施之一解决此问题。

  • 为此帐户暂时删除 MFA。
  • 使用服务帐户。

错误:预配期间使用的帐户没有权限完成此操作

原因:由于符合性和法规要求,所使用的帐户没有权限将 VM 加入到域。

修复:请采取以下措施之一解决此问题。

  • 使用管理员组成员帐户。
  • 向所使用的帐户授予必要的权限。

错误:无法解析域名

原因 1:VM 所在的虚拟网络没有关联域所在的虚拟网络 (VNET)。

修复 1:在预配了 VM 的 VNET 和域控制器 (DC) 正在运行的 VNET 之间创建 VNET 对等互连。 请参阅创建虚拟网络对等互连 - 资源管理器,不同订阅

原因 2:使用 Microsoft Entra 域服务时,虚拟网络的 DNS 服务器设置未更新为指向托管域控制器。

修复 2:若要更新包含 Microsoft Entra 域服务的虚拟网络的 DNS 设置,请参阅更新 Azure 虚拟网络的 DNS 设置

原因 3:网络接口的 DNS 服务器设置未指向虚拟网络中对应的 DNS 服务器。

修复 3:按照 [更改 DNS 服务器] 中的步骤,采取以下某项措施来解决此问题。

  • 按照更改 DNS 服务器中的步骤,将网络接口的 DNS 服务器设置更改为“自定义”,并指定虚拟网络中 DNS 服务器的专用 IP 地址。
  • 按照更改 DNS 服务器中的步骤,将网络接口的 DNS 服务器设置更改为“从虚拟网络继承”,然后按照更改 DNS 服务器中的步骤更改虚拟网络的 DNS 服务器设置。

未安装 Azure 虚拟桌面代理和 Azure 虚拟桌面启动加载器

建议使用 Azure 门户创建模板来预配 VM。 该模板会自动安装 Azure 虚拟桌面代理和 Azure 虚拟桌面代理启动加载器。

请按照以下说明来确认是否已安装组件并检查是否有错误消息。

  1. 通过检查“控制面板”>“程序”>“程序和功能”,确认是否已安装这两个组件 。 如果 Azure 虚拟桌面代理和 Azure 虚拟桌面代理启动加载器不可见,则说明 VM 中未安装它们 。
  2. 打开“文件资源管理器”并导航到 C:\Windows\Temp\ScriptLog.log 。 如果缺少该文件,则表示安装了这两个组件的 PowerShell DSC 无法在提供的安全上下文中运行。
  3. 如果文件 C:\Windows\Temp\ScriptLog.log 存在,请将其打开,并检查错误消息。

错误:缺少 Azure 虚拟桌面代理和 Azure 虚拟桌面代理启动加载器。 也缺少 C:\Windows\Temp\ScriptLog.log

原因 1:Azure 资源管理器模板输入期间提供的凭据错误或权限不足。

修复 1:使用通过 PowerShell 创建主机池,手动将缺少的组件添加到 VM。

原因 2:PowerShell DSC 能够启动并执行,但无法完成,因为它无法登录到 Azure 虚拟桌面并获得所需信息。

修复 2:确认下面列表中的项。

  • 请确保该帐户没有 MFA。
  • 确认主机池的名称是否正确,且 Azure 虚拟桌面中是否存在该主机池。
  • 确认帐户对 Azure 订阅或资源组是否至少具有“参与者”权限。

错误:身份验证失败,C:\Windows\Temp\ScriptLog.log 出错

原因:PowerShell DSC 可以执行,但无法连接到 Azure 虚拟桌面。

修复方法:确认下列项。

  • 手动向 Azure 虚拟桌面服务注册 VM。
  • 确认用于连接到 Azure 虚拟桌面的帐户对 Azure 订阅或资源组是否具有权限来创建主机池。
  • 确认帐户没有 MFA。

Azure 虚拟桌面代理未向 Azure 虚拟桌面服务注册

首次在会话主机 VM 上安装 Azure 虚拟桌面代理(采用手动方式或通过 Azure 资源管理器模板和 PowerShell DSC)时,它会提供注册令牌。 以下部分介绍适用于 Azure 虚拟桌面代理和令牌的故障排除问题。

错误:Get-AzWvdSessionHost cmdlet 中报告的状态显示状态“不可用”

Get-AzWvdSessionHost cmdlet shows status as Unavailable.

原因: 代理无法自行更新到新版本。

修复:按照以下说明手动更新代理。

  1. 在会话主机 VM 上下载新版本的代理。
  2. 启动“任务管理器”,然后在“服务”选项卡中停止 RDAgentBootLoader 服务。
  3. 运行 Azure 虚拟桌面代理新版本的安装程序。
  4. 在系统提示输入注册令牌时,删除 INVALID_TOKEN 条目并按“下一步”(无需新令牌)。
  5. 完成安装向导。
  6. 打开“任务管理器”并启动 RDAgentBootLoader 服务。

错误:Azure 虚拟桌面代理注册表项 IsRegistered 显示值为 0

原因: 注册令牌已过期。

修复: 按照以下说明修复代理注册表错误。

  1. 如果已有注册令牌,请使用 Remove-AzWvdRegistrationInfo 将其删除。
  2. 运行 New-AzWvdRegistrationInfo cmdlett 以生成新令牌。
  3. 确认“-ExpriationTime”参数设置为 3 天。

错误:运行 Get-AzWvdSessionHost 时,Azure 虚拟桌面代理未报告检测信号

原因 1:RDAgentBootLoader 服务已停止。

修复 1:启动“任务管理器”,如果“服务”选项卡报告 RDAgentBootLoader 服务为停止状态,则启动该服务。

原因 2:端口 443 可能已关闭。

修复 2:按照以下说明打开端口 443。

  1. 通过从 Sysinternal 工具下载 PSPing 工具来确认端口 443 是否打开。

  2. 在运行代理的会话主机 VM 上安装 PSPing。

  3. 以管理员身份打开命令提示符,并发出以下命令:

    psping rdbroker.wvdselfhost.microsoft.com:443
    
  4. 确认 PSPing 收到了从 RDBroker 返回的信息:

    PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
    Copyright (C) 2012-2016 Mark Russinovich
    Sysinternals - www.sysinternals.com
    TCP connect to 13.77.160.237:443:
    5 iterations (warmup 1) ping test:
    Connecting to 13.77.160.237:443 (warmup): from 172.20.17.140:60649: 2.00ms
    Connecting to 13.77.160.237:443: from 172.20.17.140:60650: 3.83ms
    Connecting to 13.77.160.237:443: from 172.20.17.140:60652: 2.21ms
    Connecting to 13.77.160.237:443: from 172.20.17.140:60653: 2.14ms
    Connecting to 13.77.160.237:443: from 172.20.17.140:60654: 2.12ms
    TCP connect statistics for 13.77.160.237:443:
    Sent = 4, Received = 4, Lost = 0 (0% loss),
    Minimum = 2.12ms, Maximum = 3.83ms, Average = 2.58ms
    

排查 Azure 虚拟桌面并行堆栈问题

提供三种主要方式在会话主机池 VM 上安装或启用并行堆栈:

  • 使用 Azure 门户创建模板
  • 向主映像添加并在其上启用
  • 在每个 VM 上手动(或使用扩展/PowerShell)安装或启用

如果 Azure 虚拟桌面并行堆栈出现问题,请在命令提示符中键入 qwinsta 命令,以确认是否已安装或启用并行堆栈。

如果安装并启用了并行堆栈,则 qwinsta 的输出将在输出中列出 rdp-sxs 。

Side-by-side stack installed or enabled with qwinsta listed as rdp-sxs in the output.

检查下面列出的注册表项,并确认其值是否匹配。 如果缺少注册表项或值不匹配,请确保运行的是受支持的操作系统。 如果是,请按照将会话主机注册到主机池中有关如何重新安装并行堆栈的说明进行操作。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
    Server\WinStations\rds-sxs\"fEnableWinstation":DWORD=1

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
    Server\ClusterSettings\"SessionDirectoryListener":rdp-sxs

错误:O_REVERSE_CONNECT_STACK_FAILURE

O_REVERSE_CONNECT_STACK_FAILURE error code.

原因:会话主机 VM 上未安装并行堆栈。

修复:按照以下说明在会话主机 VM 上安装并行堆栈。

  1. 使用远程桌面协议 (RDP) 以本地管理员身份直接进入会话主机 VM。
  2. 按照将会话主机注册到主机池的步骤安装并行堆栈。

如何修复发生故障的 Azure 虚拟桌面并行堆栈

存在已知会导致并列堆栈发生故障的情况:

  • 未遵循正确的步骤顺序来启用并行堆栈
  • 自动更新到 Windows 10 增强型通用光盘 (EVD)
  • 缺少远程桌面会话主机 (RDSH) 角色

本部分中的说明可帮助卸载 Azure 虚拟桌面并行堆栈。 卸载并行堆栈后,请按照将会话主机注册到主机池的步骤重新安装并行堆栈。

用于运行修正的 VM 必须与具有故障并行堆栈的 VM 位于同一子网和域中。

按照以下说明从同一子网和域运行修正:

  1. 使用标准远程桌面协议 (RDP) 连接到要应用修补程序的 VM。

  2. 下载并安装 PsExec

  3. 以本地管理员身份启动命令提示符,然后导航到解压缩 PsExec 的文件夹。

  4. 通过命令提示符,使用以下命令,其中 <VMname> 是具有故障并行堆栈的 VM 的主机名。 如果这是你第一次运行 PsExec,则还需要通过单击“同意”接受 PsExec 许可协议才能继续。

    psexec.exe \\<VMname> cmd
    
  5. 在具有故障并行堆栈的虚拟机上打开命令提示符会话后,运行以下命令,并确认名为 rdp-sxs 的条目是否可用。 如果不可用,则 VM 中没有并行堆栈,因此该问题与并行堆栈无关联。

    qwinsta
    

    Administrator command prompt

  6. 运行以下命令,其将列出具有故障并行堆栈的 VM 上安装的 Microsoft 组件。

    wmic product get name
    
  7. 使用上一步中的产品名称运行以下命令,例如:

    wmic product where name="<Remote Desktop Services Infrastructure Agent>" call uninstall
    
  8. 卸载以“远程桌面”开头的所有产品。

  9. 卸载所有 Azure 虚拟桌面组件后,使用 Azure 门户或 PsExec 工具重启具有故障并行堆栈的 VM。 然后,按照将会话主机注册到主机池的步骤安装并行堆栈。

未配置远程桌面许可模式

如果使用管理帐户登录到 Windows 10 企业版多会话,则可能会接收到一条通知,显示“未配置远程桌面许可模式,远程桌面服务将在 X 天后停止工作。 请在连接代理服务器中,使用服务器管理器指定远程桌面许可模式。”

如果时间限制过期,则将出现一条错误消息,显示“由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断。”

如果出现上述任一消息,则表示该映像未安装最新的 Windows 更新,或者你正在通过组策略设置远程桌面许可模式。 按照下一部分中的步骤检查组策略设置,确定 Windows 10 企业版多会话的版本,并安装相应的更新。

注意

在主机池包含 Windows Server 会话主机时,Azure 虚拟桌面只需要 RDS 客户端访问许可证 (CAL)。 若要了解如何配置 RDS CAL,请参阅使用客户端访问许可证为 RDS 部署提供许可

禁用远程桌面许可模式组策略设置

在 VM 中打开组策略编辑器,导航到“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“许可”>“设置远程桌面许可模式”,检查组策略设置 。 如果组策略设置为“启用”,则将其更改为“禁用”。 如果已禁用,则保持选中该选项。

注意

如果通过域设置组策略,则针对 Windows 10 企业版多会话 VM 的策略禁用此设置。

确定正在使用 Windows 10 企业版多会话的哪个版本

若要检查所使用的 Windows 10 企业版多会话的版本,请执行以下操作:

  1. 使用管理员帐户登录。

  2. 在“开始”菜单旁边的搜索栏中输入“关于”。

  3. 选择“电脑信息”。

  4. 检查“版本”旁边的数字。该数字应该是“1809”或“1903”,如下图所示。

    A screenshot of the Windows specifications window. The version number is highlighted in blue.

了解版本号后,请跳转到相关部分。

版本 1809

如果版本号显示“1809”,请安装 KB4516077 更新

版本 1903

使用 Azure 库中最新版本的 Windows 10 版本 1903 映像重新部署主机操作系统。

由于安全错误,无法连接到远程电脑

如果用户看到一条错误,显示“由于安全错误,无法连接到远程电脑。 如果此问题仍然存在,请向管理员或技术支持人员获取帮助”,请验证更改默认 RDP 权限的任何现有策略。 可能导致此错误的策略是“允许通过远程桌面服务安全策略登录。”

若要详细了解此策略,请参阅允许通过远程桌面服务登录

无法部署黄金映像

黄金映像不得包含 Azure 虚拟桌面代理。 只有在部署黄金映像后,才能安装代理。

后续步骤