适用于 Teams 的新 VDI 解决方案

Teams 的新 VDI 解决方案是用于优化虚拟桌面中多媒体工作负载交付的新体系结构。

重要

Azure 虚拟桌面和 Windows 365 现已推出正式版。 对于 Citrix 客户,若要参与公共预览版,管理员必须将用户移动到公共预览版频道 ,如本文所述

组件

组件 角色 更新 大小 注释
新建 Teams vdiBridge 服务器端虚拟通道模块。 包含每个新 Teams 版本的新版本。 与新 Teams 捆绑在一起。
自定义虚拟通道 (VC) Microsoft Teams 拥有的自定义 VC。 稳定的 API - 未预见任何更新。 检查 Citrix Studio 策略 虚拟通道允许列表
插件 客户端 VC dll。 还负责 SlimCore 下载和清理。 不经常 (理想情况下没有更新) 。 大约 200 KB。 RD 客户端 1.2.5405.0 或 Windows 应用 1.3.252 或更高版本捆绑在一起。 Citrix CWA 2402 或更高版本可以提取和安装插件。
SlimCore 媒体引擎 (特定于操作系统,而不是 VDI 供应商特定的) 。 使用每个新 Teams 版本自动更新到新版本。 大约 50 MB。 托管在 Microsoft 公共 CDN 上的 MSIX 包

系统要求

要求 最低版本
新版 Teams Azure 虚拟桌面/Windows 365)
24193.1805.3040.8975 (24165.1410.2974.66 Citrix 单会话 VDA ()
24243.1309.3132.617 (Citrix 多会话 VDA)
Azure 虚拟桌面/Windows 365 Windows 应用:1.3.252
远程桌面客户端:1.2.5405.0
Citrix VDA:2203 LTSR CU3 或 2305 CR
Citrix 工作区应用:2203 LTSR (任何 CU) 、2402 LTSR 或 2302 CR
Endpoint Windows 10 1809 (SlimCore 最低要求)
GPO 不得阻止 MSIX 安装 (请参阅步骤 3:SlimCore MSIX 暂存和注册终结点)
最低 CPU:Intel Celeron (或等效) @ 1.10 GHz、4 核、最小 RAM:4 GB

使用适用于 Teams 的新 VDI 解决方案进行优化

步骤 1:确认先决条件

  1. 确保具有适用于 Azure 虚拟桌面/Windows 365) 的新 Microsoft Teams 版本 24193.1805.3040.8975 (或更高版本,以及 Citrix 的 24165.1410.2974.6689 或更高版本。
  2. 如果特定用户组需要,请启用新的 Teams 策略, (默认在全局组织级别) 启用它。
  3. 对于 Citrix,必须按照本文的 Citrix 虚拟通道允许列表 部分所述配置 虚拟通道允许列表

步骤 2:在终结点上安装插件

  1. 对于 Azure 虚拟桌面和Windows 365,MsTeamsPluginAvd.dll 与适用于 Windows 1.2.5405.0 的 RD 客户端或 Windows App Store 应用 1.3.252 或更高版本捆绑在一起。

    • 该插件位于安装 RD 客户端的同一文件夹位置。 它位于 AppData\Local\Apps\Remote Desktop 或 C:\Program Files (x86) ,具体取决于安装的模式。
    • Windows App Store应用(因为它是基于 MSIX 的应用)位于 C:\Program Files\WindowsApps 中。 对此文件夹的访问受到限制。
  2. 对于 Citrix CWA 2402 或更高版本,可以安装 MsTeamsPluginCitrix.dll:

    • 安装 CWA 时使用用户界面:

      在“ 加载项 () ”页上,选中“ 安装Microsoft Teams VDI 插件 ”复选框,然后选择“ 安装”。

      同意弹出的用户协议并继续安装 Citrix 工作区应用。

      注意

      Citrix 工作区应用 2402 仅在全新安装时显示插件安装 UI。 若要提供此选项的就地升级,需要 Citrix 工作区应用 2405 或更高版本。

    • 通过命令行或托管设备的脚本,使用:

      C:\>CitrixWorkspaceApp.exe installMSTeamsPlugin

    • 管理员还可以在任何现有受支持的 CWA 之上手动安装插件 (请参阅系统要求) 使用SCCM (使用 Windows 应用包部署类型) 或Intune (使用业务线应用) 等工具。

      管理员可以将 msiexec 与适当的标志一起使用,如 msiexec 中所述。

      重要

      可以找到 Citrix 客户的插件 MSI 下载链接: MsTeamsPluginCitrix.msi

插件 MSI 会自动检测 CWA 安装文件夹,并将 MsTeamsPluginCitrix.dll 放在该位置:

用户类型 安装文件夹 安装类型
Administrator 64 位:C:\Program Files (x86) \Citrix\ICA 客户端
32 位:C:\Program Files\Citrix\ICA 客户端
按系统安装
  • 插件不能降级,只能升级或重新安装 (修复) 。
  • 不支持按用户安装 CWA。
  • 如果在终结点上找不到 CWA,则停止安装。

步骤 3:在终结点上进行 SlimCore MSIX 暂存和注册

插件以无提示方式执行此步骤,无需用户或管理员干预。 暂存和注册依赖于终结点上的应用就绪服务 (ARS) 。 MSIX 包安装可能被组策略或第三方工具设置的注册表项阻止。 有关适用注册表项的完整列表,请参阅组策略如何与打包的应用配合使用 - MSIX

以下注册表项可能会阻止新媒体引擎 MSIX 包安装:

重要

如果禁用 AllowAllTrustedApps,则新媒体引擎 (MSIX) 安装失败。 Windows 10 月累积更新KB5031455中已修复此问题:

如果此可选的 10 月更新不适用于操作系统版本,则 11 月安全更新还包括修补程序。

可以在用户设备上的以下任一位置找到这三个注册表项:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock
  • HKLM\SOFTWARE\Policies\Microsoft\Windows\Appx

某些策略可能会更改这些注册表项并阻止组织中的应用安装,因为管理员设置了限制性策略。 一些可能阻止安装的已知 GPO 策略包括:

  • 阻止非管理员用户安装打包的 Windows 应用。
  • 允许所有受信任的应用安装 (禁用) 。

注意

AppLockerWindows Defender 应用程序控制 还可以阻止 MSIX 包安装。

AppLocker 是一项深层防御安全功能,不被视为可防御的 Windows 安全功能。 当目标是提供强大的威胁防护,并且预计不存在阻止安全功能实现此目标的按设计限制时,应使用 Windows Defender 应用程序控制

重要

请确保没有阻止配置或策略,或者在“本地安全策略” - 应用程序控制>策略 -> AppLocker 中为 SlimCore MSIX 包添加异常。

与 Windows Defender 应用程序控制不同,AppLocker 无法处理尾随通配符。 由于 SlimCoreVdi 包包含特定于版本的 PackageFamilyName (例如 Microsoft.Teams.SlimCoreVdi.win-x64.2024.36_8wekyb3d8bbwe) ,因此客户可以通过依赖 PublisherID 8wekyb3d8bbwe 来添加 AppX 或 MSIX 排除项。

验证终结点是否已优化

满足所有最低要求后,首次启动新 Teams 会发现它默认仍处于 WebRTC 优化模式。

重要

对于首次运行体验,需要重启两次应用才能获得新的优化。

可以在使用新体系结构优化的 Teams 客户端中检查,方法是转到顶部栏中的省略号 (三点 ...) ,然后选择“设置>关于”。 其中列出了 Teams 和客户端版本。

  • AVD SlimCore 媒体优化 = 基于 SlimCore 的新优化。
  • AVD 媒体优化 = 基于 WebRTC 的旧版优化。

插件 (MsTeamsPluginAvd.dll 或 MsTeamsPluginCitrix.dll) 负责最终下载媒体引擎和 SlimCore(MSIX 包)。 在 (示例中,它将以无提示方式安装,无需管理员权限或重新启动,具体路径) 而异:

C:\Program Files\WindowsApps\Microsoft.Teams.SlimCoreVdi.win-x64.2024.15_2024.15.1.5_x64__8wekyb3d8bbwe

远程桌面客户端下载 x64 或 x86 SlimCore 包,Citrix CWA 下载 x86 包。 此文件夹已锁定,因此用户无权访问它。 管理员可以通过修改 ACL 来获取所有权,但不建议执行此操作。 请改用 PowerShell 列出终结点中的 MSIX 应用:

PowerShellCopy

Get-AppxPackage Microsoft.Teams.SlimCore*

运行此 Powershell 可返回的结果示例为:

Name              : Microsoft.Teams.SlimCoreVdi.win-x64.2024.32
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 2024.32.1.7
PackageFullName   : Microsoft.Teams.SlimCoreVdi.win-x64.2024.32_2024.32.1.7_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\Microsoft.Teams.SlimCoreVdi.win-x64.2024.32_2024.32.1.7_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.Teams.SlimCoreVdi.win-x64.2024.32_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

重要

Microsoft存储多达 12 个版本的 SlimCoreVdi 以实现兼容性,并且如果用户访问不同的 VDI 环境 ((例如,新 Teams 自动更新本身)和非永久性() 禁用新 Teams 自动更新)。

如果已优化,可以看到 Azure 虚拟桌面/W365 (终结点上运行的 MsTeamsVdi.exe 作为 msrdc.exe) 的子进程,或者将 Citrix (作为 wfica32.exe) 的子进程运行。 使用“进程资源管理器”时,如果选择“msrdc.exe (”或“wfica32.exe) ”,请选择“视图”下的“显示下窗格”并切换到“DLL”选项卡,还可以看到加载的插件 (MsTeamsPluginAvd.dll 或 MsTeamsPluginCitrix.dll) 。 如果未获得新的优化,此操作是一个有用的故障排除步骤。

如果启用底部窗格并切换到 DLL 选项卡,则还可以看到正在加载的插件。 如果未获得新的优化,此操作是一个有用的故障排除步骤。

会话漫游和重新连接

新 Teams 在启动时加载 WebRTC 或 SlimCore。 如果虚拟桌面会话断开连接 (未注销,则 Teams 在 VM) 保持运行状态,则新 Teams 无法切换优化堆栈,除非重新启动。 因此,如果用户在不支持新优化体系结构的不同设备(例如,在家工作时在 BYOD 中使用的 MAC 设备)和办公室) 公司管理的瘦客户端之间漫游,则用户可能处于回退模式 ( (未优化) 。 为了避免这种情况,Teams 会提示用户使用模式对话,要求重启应用。 重启后,用户将处于 WebRTC 优化模式。

重新连接选项 如果当前优化为 WebRTC 如果当前优化为 SlimCore
从没有 MsTeamsPlugin 的终结点重新连接 然后,WebRTC 经典优化
(“AVD 媒体优化”)
(“Citrix HDX 媒体优化”)
然后重启对话框提示
重启后,用户处于 WebRTC 经典优化中。 否则,Teams 不会重启,并且用户处于回退模式, (服务器端呈现) 。
使用 MsTeamsPlugin 从终结点重新连接 然后,WebRTC 经典优化
(“AVD 媒体优化”)
(“Citrix HDX 媒体优化”)
然后是新的基于 SlimCore 的优化

网络注意事项

注意

MsTeamsVdi.exe 是与 Teams 中继/会议服务器或其他对等服务器建立所有 TCP/UDP 网络连接的过程。

SlimCore MSIX 清单将以下规则添加到防火墙: <Rule Direction="in" IPProtocol="TCP" Profile="all" /><Rule Direction="in" IPProtocol="UDP" Profile="all" />

确保用户的设备的网络连接 (UDP 和 TCP) 终结点 ID 11、12、47 和 127,如 Microsoft 365 URL 和 IP 地址范围中所述。

ID 类别 地址 端口 注释
11 需要优化 13.107.64.0/18, 52.112.0.0/14, 52.122.0.0/15, 2603:1063::/38 UDP:3478、3479、3480、3481 媒体处理器和传输中继 3478 (STUN) 、3479 (音频) 、3480 (视频) 、3481 (Screenshare)
12 需要允许 *.lync.com*.teams.microsoft.comteams.microsoft.com 13.107.64.0/18、 52.112.0.0/14、52.122.0.0/15、52.238.119.141/32、52.244.160.207/32、2603:1027::/48、 2603:1037::/48、2603:1047::/48、2603:1057::/48、2 603:1063::/38、2620:1ec:6::/48、2620:1ec:40::/42 TCP:443、80
47 默认必需 不支持 *.office.net TCP:443、80 用于 SlimCore 下载和后台效果
127 默认必需 *.skype.com TCP:443、80

网络体系结构

Teams VDI 2 的网络体系结构。

图中体系结构的演练:

  1. 启动新的 Teams。
  2. Teams 客户端向 Teams 服务进行身份验证。 租户策略向下推送到 Teams 客户端,相关配置将中继到应用。
  3. Teams 检测到它在虚拟桌面环境中运行,并实例化内部 vdibridge 服务。
  4. Teams 在服务器上打开一个安全虚拟通道。
  5. RDP 或 HDX 协议将请求传递到 RD 客户端或 Citrix 工作区应用,该应用以前加载了 MsTeamsPlugin (客户端虚拟通道组件) 。
  6. RD 客户端或 Citrix 工作区应用会生成一个名为 MsTeamsVdi.exe 的新进程,这是用于新优化的新媒体引擎 (SlimCore) 。
  7. 客户端) 上的 SlimCore 媒体引擎 (,虚拟桌面上的 msteams.exe () 现在具有双向通道,并且可以开始处理多媒体请求。

用户调用

  1. 对等方 A 选择呼叫按钮。 MsTeamsVdi.exe 与 Azure 中的 Microsoft Teams 服务通信,使用对等 B 建立端到端信号路径。MsTeamsVdi.exe 收集一系列支持的调用参数 (编解码器、分辨率等,这称为会话描述协议 (SDP) 提供) 。 然后,这些调用参数将使用信令路径中继到 Azure 中的 Microsoft Teams 服务,并从那里中继到另一个对等方。
  2. SDP 套餐/应答 (单通道协商) 通过信令通道进行,ICE 连接检查 (使用 STUN 绑定请求的 NAT 和防火墙遍历) 完成。 然后,安全实时传输协议 (SRTP) 媒体直接流 MsTeamsVdi.exe 与其他对等 (或 Teams 传输中继或会议服务器) 。

本文介绍了用于信号、媒体、背景效果和其他选项的 IP 块。

终结点上 SlimCore 处理的流量类型

  1. Teams 媒体流连接是使用标准 IETF 交互式连接建立 (ICE) STUN 和 TURN 过程实现的。
  2. 实时媒体。 实时传输协议中封装的数据 (RTP) ,支持音频、视频和屏幕共享工作负载。 通常,媒体流量对延迟高度敏感。 此流量必须尽可能采用最直接的路径,并使用 UDP 与 TCP 作为传输层协议,这是从质量角度来看交互式实时媒体的最佳传输。
  • 作为最后的手段,媒体可以使用 TCP/IP,也可以在 HTTP 协议中通过隧道,但由于质量不佳,不建议这样做。
  • RTP 流使用 SRTP 进行保护,其中仅对有效负载进行加密。
  1. 信号。 终结点与 Teams 服务器或其他客户端之间的通信链接,用于控制活动 (例如,在) 发起调用时。 大多数信令流量使用 UDP 3478 并回退到 HTTPS,但在某些情况下 (例如,Microsoft 365 与会话边界控制器之间的连接) 它使用 SIP 协议。 请务必了解,此流量对延迟的敏感度要低得多,但如果终结点之间的延迟超过几秒钟,可能会导致服务中断或调用超时。

带宽消耗

Teams 旨在不受网络条件限制,提供最佳音频、视频和内容共享体验。 当带宽不足时,Teams 将优先处理音频质量,而优先于视频质量。 在带宽不受限制的情况下,Teams 可优化媒体质量,包括高保真音频、高达 1080p 的视频分辨率以及高达每秒 30 fps (帧的视频和内容) 。 若要了解详细信息,请阅读 带宽要求

服务质量 (QoS)

实现终结点和网络设备的 QoS 设置,并确定要如何处理通话和会议的媒体流量。

  • 作为先决条件,请在 Teams 管理员中心全局启用 QoS。 有关为实时媒体流量设置启用插入服务质量 (QoS) 标记的详细信息,请参阅在 Teams 管理中心配置 QoS

    建议的初始端口范围:

    媒体流量类型 客户端源端口范围 协议 DSCP 值 DSCP 类
    音频 50,000 - 50,019 TCP/UDP 46 加速转发 (EF)
    视频 50,020 - 50,039 TCP/UDP 34 保证转发 (AF41)
    应用或屏幕共享 50,040 = 50,059 TCP/UDP 18 保证转发 (AF41)
  • 有关为 Windows 终结点配置 DSCP 标记的信息,请参阅 在 Teams 客户端中实现 QoS

    注意

    任何基于终结点的标记都必须应用于 MsTeamsVdi.exe,该过程处理用户设备上的所有多媒体卸载。 有关 QoS 的详细信息,请参阅 Playbook 文档

  • 有关为路由器实现 QoS 的信息,请参阅制造商的文档。

  • 在网络设备上设置 QoS 可能包括以下部分或全部内容:

    • 使用基于端口访问控制 Lists (ACL)
    • 定义 QoS 队列
    • 定义 DSCP 标记

重要

建议使用终结点源端口以及源和目标 IP 地址“any”实现这些 QoS 策略。 这会捕获内部网络上的传入和传出媒体流量。

  1. VPN 网络。 不建议将其用于媒体流量。
  2. 数据包整形器。 不建议将任何类型的数据包探查器、数据包检查、代理或数据包整形器设备用于 Teams 媒体流量,并且可能会显著降低质量。

Microsoft Teams PowerShell 策略进行优化

CsTeamsVdiPolicy cmdlet 使管理员能够控制用户可以创建的会议类型,或者在专门在 VDI 环境中的会议中访问的功能,其中,使用 VDI 合作伙伴的策略引擎 (Citrix StudioVMware HTML5 ADMX 模板AVD 和Windows 365) 的此注册表项禁用了 WebRTC 优化。

默认策略配置包括:

  • DisableCallsAndMeetings: False
  • DisableAudioVideoInCallsAndMeetings: False

此策略现在已使用附加参数作为唯一的配置点进行扩展,以控制用户是否可以获取基于 SlimCore 的新优化模式 (,换句话说,VDI 合作伙伴的策略引擎不会控制新的优化模式) :

  • VDI2Optimization:已启用 (默认值)
名称 定义 示例 注释
New-CsTeamsVdiPolicy 允许管理员定义新的 VDI 策略,这些策略可以分配给用户,以控制与 VDI 环境中的会议相关的 Teams 功能。 PS C:\> New-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" 此处显示的命令使用 New-CsTeamsVdiPolicy cmdlet 创建标识为 RestrictedUserPolicy 的新 VDI 策略。 此策略使用 VDI 策略的所有默认值,但 VDI2Optimization 除外。 在此示例中,无法使用 SlimCore 优化具有此策略的用户。
Grant-CsTeamsVdiPolicy 允许管理员在每用户范围内分配 Teams VDI 策略,以控制用户可以创建的会议类型、他们可以在未优化的 VDI 环境中访问的功能,以及用户是否可以使用基于 SlimCore 的新优化模式进行优化。 PS C:\> Grant-CsTeamsVdiPolicy -identity "Ken Myer" -PolicyName RestrictedUserPolicy 在此示例中,为标识为“Ken Myer”的用户分配了 RestrictedUserPolicy。
Set-CsTeamsVdiPolicy 允许管理员更新现有 VDI 策略。 PS C:\> Set-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" 此处显示的命令使用 Set-CsTeamsVdiPolicy cmdlet 使用 Identity RestrictedUserPolicy 更新现有 VDI 策略。 此策略使用除以下值之外的所有现有值:VDI2Optimization;在此示例中,无法使用 SlimCore 优化具有此策略的用户。
Remove-CsTeamsVdiPolicy 允许管理员删除以前创建的 Teams VDI 策略。 没有显式分配策略的用户回退到组织中的默认策略。 PS C:\> Remove-CsTeamsMeetingPolicy -Identity RestrictedUserPolicy 在前面显示的示例中,命令从组织的策略列表中删除受限用户策略,并从分配了策略的用户中删除此策略的所有分配。
Get-CsTeamsVdiPolicy 允许管理员检索有关组织中已配置的所有 VDI 策略的信息。 PS C:\> Get-CsTeamsVdiPolicy -Identity SalesPolicy 在此示例中,Get-CsTeamsVdiPolicy 用于返回具有 Identity SalesPolicy 的每用户会议策略。 由于标识是唯一的,因此此命令不会返回多个项。

具有新优化的功能列表

功能 在线
1080p
终结点上的硬件加速
库视图 3x3 和 7x7
服务质量
噪声抑制
演示者模式
Teams 高级版
(挂起:水印、市政厅、装饰我的背景)
用户上传的背景效果 即将提供
缩放 +/- 即将提供

终结点上的 SlimCore 用户配置文件

VDI 的新解决方案将用户特定的数据存储在终结点上的以下位置,具体取决于你的供应商:

  • C:\users\<user>\AppData\Local\Microsoft\TeamsVDI\avd-default-<cloudname>\
  • C:\users\<user>\AppData\Local\Microsoft\TeamsVDI\citrix-default-<cloudname>\

重要

锁定的瘦客户端必须允许读取/写入这些位置,否则新的优化可能会失败。 对于较旧的 Windows 10 1809 瘦客户端 ((如 Dell Wyse 5070 和类似型号) ),SlimCore 配置文件的文件夹位置为 C:\Users\<user>\AppData\Local\Packages\Microsoft.Teams.SlimCoreVdi.win-<architecture>.<version>_8wekyb3d8bbwe\LocalCache\

(用于噪声抑制、带宽估计等的日志、配置和 AI 或 ML 模型,) 保存在此位置。 如果用户注销后清除这些文件夹 (,例如,在没有漫游配置文件的情况下锁定瘦客户端) ,MsTeamsVdi.exe 重新创建这些文件夹并下载用户特定的配置 (大约 6 MB 的数据) 。

锁定瘦客户端环境中的 SlimCore 安装和升级过程 (可选)

默认情况下,MsTeamsPlugin 会自动下载并安装正确的 SlimCore 媒体引擎版本,无需用户或管理员干预。 但分支机构中受限网络环境中的客户可以选择替代 SlimCore 分发过程,而无需终结点能够使用 https 从 Microsoft 的公共 CDN 提取 SlimCore 包。

注意

有关与相应新 Teams 版本匹配的 SlimCore 包的更新列表,检查此表

重要

如果必须选择此方法,则必须保证:

  1. 在虚拟桌面中禁用 Teams 自动更新
  2. 在虚拟桌面中升级新 Teams 之前,会将 SlimCore 包预配到终结点的本地存储或网络共享。 任何较新的 Teams 版本都会请求匹配的 SlimCore 新版本,如果插件找不到该版本,用户将处于回退模式 (服务器端呈现) 。

这是因为新的 Teams 和 SlimCore 版本必须匹配。

配置步骤

  1. 在用户的终结点 (瘦客户端/fat 客户端) ,必须创建以下regkey:

    • Citrix 的位置:HKLM\SOFTWARE\WOW6432Node\Microsoft\Teams\MsTeamsPlugin
    • Azure 虚拟桌面/W365 的位置:HKLM\SOFTWARE\Microsoft\Teams\MsTeamsPlugin
    • 名称:MsixUrlBase
    • 类型:REG_SZ
    • 数据:本地存储或网络存储 UNC 路径,例如 file://C:/Temp 或 file://ComputerName/SharedFolder。

    regkey 定义基 URL。

  2. 此外,管理员必须从Microsoft的 CDN 下载与你计划在将来部署的新 Teams 版本匹配的确切 SlimCore MSIX 包版本。

    重要

    MSIX 包需要匹配 Citrix 工作区应用的体系结构或位数, (x86 仅) 、远程桌面或 Windows 应用客户端: Microsoft.Teams.SlimCoreVdi.<platform>-<architecture>.msix

  3. 将 MSIX 置于特定文件夹中,其版本位于注册表项中指定的位置内,以保留结构。 例如,C:\Temp\2024.4.1.9\Microsoft.Teams.SlimCoreVdi.win-x86.msix 或 //ComputerName/SharedFolder/2024.4.1.9/。

    注意

    如果插件在本地或网络存储中找不到 SlimCore MSIX 包,则会自动尝试从Microsoft公共 CDN 下载它作为回退。

已知问题

  • 目前不支持 AVD RemoteApps 和 Citrix 发布的应用。
  • 屏幕捕获保护 (SCP) 会导致演示者的屏幕显示为黑屏,顶部只有鼠标光标, (接收方) 。
  • 如果用户从同一本地计算机启动虚拟桌面并登录到 Teams,则调用将丢弃在本地计算机上运行的 Teams,该计算机连接了 HID 外围设备。
  • 目前不支持相机自我预览, (在“设置/设备”下或在通话时选择相机图标上的向下箭头时) 。

Citrix 虚拟通道允许列表

CVAD 中的 虚拟通道允许列表 策略设置允许使用允许列表,该列表指定可在 ICA 会话中打开哪些虚拟通道。 启用后,必须声明除 Citrix 内置虚拟通道之外的所有进程。 因此,新的 Teams 客户端需要更多条目才能连接到客户端插件 (MsTeamsPluginCitrix.dll) 。

对于 Citrix 虚拟应用和桌面 2203 或更高版本, 默认启用虚拟通道允许列表。 这些默认设置拒绝访问新的 Teams 自定义虚拟通道,因为允许列表不包括新的 Teams main进程名称。

新的 Teams 客户端需要三个自定义虚拟通道才能正常运行:MSTEAMS、MSTEAM1和MSTEAM2。 ms-teams.exe 访问这些通道。 可以使用通配符来允许 ms-teams.exe 可执行文件和自定义虚拟通道:

  • MSTEAMS,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
  • MSTEAM1,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
  • MSTEAM2,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
  1. 通配符支持在以下方面提供:

    • VDA 2206 CR。
    • 从 CU2 开始的 VDA 2203 LTSR。
  2. 必须重新启动 VDA 计算机才能使策略生效。

Citrix 应用保护和Microsoft Teams 兼容性

启用了应用保护的用户仍然可以在使用新的优化时共享其屏幕和应用。 共享需要 VDA 版本 2402 或更高版本,以及适用于 Windows 2309.1 或更高版本的 CWA。 安装并启用应用保护模块时,较低版本的用户最终会共享黑屏。

AVD 屏幕捕获保护和Microsoft Teams 兼容性

启用了 屏幕捕获保护 (SCP) 的用户无法共享其屏幕或应用。 呼叫中的其他人只能看到黑屏。 如果要允许用户共享其屏幕(即使启用了 SCP),则需要在 Teams 管理员中心策略 (禁用 SlimCore 优化,以便使用 WebRTC) 优化用户,并将 SCP 策略设置为在客户端上阻止屏幕捕获

VDI 中的通话质量仪表板

呼叫质量仪表板 (CQD) 允许 IT 专业人员通过比较用户组的统计信息来确定趋势和模式,从而使用聚合数据来确定造成媒体质量问题的问题。 CQD 不专注于解决单个呼叫问题,而是专注于识别适用于许多用户的问题和解决方案。

VDI 用户信息现在通过许多维度和筛选器公开。 有关每个维度的详细信息,请查看 此页

查询基础知识

格式正确的 CQD 查询/报表包含以下三个参数:

格式正确的查询的一些示例包括:

  1. “使用上个月 [筛选器] 的新优化 [维度] 为 VDI 用户显示差流 [度量]。”
  2. “按上个月和优化了第一个或第二个客户端 VDI 模式 [筛选器] 的总Stream计数 [维度] 显示差应用共享 [度量]。”

还可以使用许多维度和度量值作为筛选器。 可以在查询中使用筛选器来消除信息,就像选择维度或度量以在查询中添加或包含信息一样。

UNION 的作用

默认情况下,筛选器允许使用 AND 运算符筛选条件。 但在某些情况下,你可能希望将多个筛选条件组合在一起,以获得类似于 OR 操作的结果。 例如:若要从 VDI 用户获取所有流,UNION 提供合并数据集的不同视图。 要使用“联合”,请在你要联合的两个筛选条件上的“联合”字段中插入普通文本。

调用方和被调用方位置

CQD 不使用“调用方”或“被调用方”字段,而是使用 “第一”“第二 ”,因为调用方和被调用方之间存在干预步骤。

  • 首先 始终是服务器终结点 (例如 AV MCU 或媒体处理器服务器) (如果流中涉及服务器)。
  • 第二 个始终是客户端终结点,除非它是服务器-服务器流。

如果两个终结点的类型相同, (例如) 人员对人呼叫,则基于用户代理类别的内部排序设置第一个与第二个,以确保排序一致。

疑难解答

  • 未使用 SlimCore 进行优化,而是会看到:
    “Azure 虚拟桌面媒体优化”
    “Citrix HDX 优化”

    • 错误代码 2000 (“无插件”) 和 2001 (“虚拟通道不可用”) 是最有可能的原因。
    1. 请确保“虚拟通道允许列表”已正确配置为允许 MSTEAMS、MSTEAM1、MSTEAM2。
    2. 确保终结点具有 插件,并由 VDI 客户端使用进程资源管理器加载:
    • 运行 进程资源管理器
    • 启用底部窗格并切换到 DLL 选项卡。
    • 在 Azure 虚拟桌面上,查找 msrdc.exe 过程并确保加载 MsTeamsPluginAvd.dll。
    • 在 Citrix 上,查找 wfica32.exe 进程并确保加载 MsTeamsPluginCitrix.dll。
    1. 重启新的 Teams 应用。 首次检测到插件时,需要重启两次才能从 WebRTC 转换到 SlimCore。
    2. 如果问题仍然存在, (新的 Teams 24123.X.X.X 或更高版本) ,检查 事件查看器 VM 中Microsoft与 Teams VDI 相关的错误。
  • 未使用 SlimCore 进行优化,而是会看到:“Azure 虚拟桌面 SlimCore 媒体未连接”或“Citrix SlimCore 媒体未连接”。

VDI 的新 Teams 日志

在 VM 上运行 Teams 时,可以通过选择 Ctrl+Alt+Shift+1 收集 Teams 日志。 此操作在“下载”文件夹中生成 ZIP 文件夹。 在 PROD-WebLogs-*.zip 文件中,查找 Core 文件夹。

Azure 虚拟桌面/W365 Citrix
“vdiConnectedState”: {“connectedStack”: “remote”}, “vdiVersionInfo”: {“bridgeVersion”: “2024.18.1.11”, “remoteSlimcoreVersion”: “2024.18.01.11”, “nodeId”: “1051a908af6b160e”, “clientOsVersion”: “10.0.22631”, “rdClientVersion”: “1.2.5405.0”, “rdClientProductName”: “Microsoft®远程桌面”, “pluginVersion”: “2024.14.01.1”, “screenShareFallback”: true} “vdiConnectedState”: {“connectedStack”: “remote”}, “vdiVersionInfo”: {“bridgeVersion”: “2024.18.1.14”, “remoteSlimcoreVersion”: “2024.18.01.14”, “nodeId”: “ffffffffffffff93eaee6a”, “clientOsVersion”: “10.0.22631”, “rdClientVersion”: “24.3.0.64”, “rdClientProductName”: “Citrix Workspace”, “pluginVersion”: “2024.15.01.3”, “screenShareFallback”: true}
  • vdiConnectedState 显示当前活动调用堆栈。
    • connectedStackremote 指示 Teams 已通过虚拟通道成功连接到远程终结点。 这并不一定意味着调用堆栈已成功初始化,因此用户仍可能会遇到与调用相关的故障,例如无法启动调用。
    • connectedStack本地 表示虚拟通道连接失败。 用户现在处于回退模式。
  • vdiVersionInfo 为 Teams 客户端和终结点提供了有用的信息。
    • bridgeVersion 与 VM 上运行的 Teams 桌面客户端版本相关联。
    • remoteSlimcroreVersion 是终结点上可用的 SlimCore VDI 版本。
    • nodeId 是绑定到终结点的唯一 ID。
    • clientOsVersion 是终结点的 OS 版本。
    • rdClientVersion 是在终结点上运行的远程桌面客户端版本,用于连接到 VM。
    • rdClientProductName 是在终结点上运行的远程桌面客户端的名称。
    • pluginVersion 是集成到远程桌面客户端中的插件的版本。

Diagnostics-logs.txt 可能位于 weblogs\user ( 上。)

为了进一步调查与 VDI 连接相关的问题,使用 关键字 (keyword) vdiBRidgeEventsHandler 提供 vdiBridge 连接和断开连接事件处理中的日志,如以下成功连接与新优化堆栈的成功连接示例 (连接事件处理) 所示:

7432 2024-03-01T17:51:22.032Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - onConnected: end, currentStack=remote 7435 2024-03-01T17:51:22.032Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - new calling stack type set: currentStack=remote 7436 2024-03-01T17:51:22.032Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - deviceManagerService reloaded 7445 2024-03-01T17:51:22.031Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - calling stack reinit complete with nextStack=remote 7464 2024-03-01T17:51:21.785Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - starting calling stack reinit with nextStack=remote 7465 2024-03-01T17:51:21.785Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - SlimCore replacement complete, remote is now available 7467 2024-03-01T17:51:21.783Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - setVDIOptimizationModeOverride: from SlimCore to SlimCore 7468 2024-03-01T17:51:21.782Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - onConnected: isVersionMismatch=false, forceVersion=undefined, bridgeVersion=2024.5.1.11 7469 2024-03-01T17:51:21.782Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - cached local SlimCore for future (fallback), currentStack=local 7470 2024-03-01T17:51:21.782Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - onConnected: start, vendorType=1, remoteSlimcoreVersion=2024.05.01.11, platform=win-x86, loadErrc=1, deployErrc=24002, nodeId=ffffffffbd7d5e77 7471 2024-03-01T17:51:21.782Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - enqueueBridgeCallback: adding onConnected to queue, 0 bridge callbacks in queue, isBridgeCallbacksQueueProcessing=false

连接错误

如果存在连接错误,可以从包含“loadErrc”和“deployErrc”的日志行中找到错误代码。 部署错误 (也称为install_error) 是插件尝试从Microsoft的 CDN 下载 SlimCore MSIX 包并使用 AppX 应用就绪服务将其预配到终结点时发生的错误。 加载错误是插件尝试启动 MsTeamsVdi.exe 并建立远程过程调用 (RPC) 时发生的错误。

此处记录的代码需要使用此表进行映射:

loadErrc deployErrc 定义 注释
0 0 还行 “ConnectedNoPlugin”遥测消息的特殊代码。
5 43 ERROR_ACCESS_DENIED MsTeamsVdi.exe 进程在启动时失败。 可能是由启用 BlockNonAdminUserInstall 引起的。 或者终结点可能在用户登录后忙于注册多个 MSIX 包,并且未完成 SlimCoreVdi 的注册。
404 3235 HTTP_STATUS_NOT_FOUND 发布问题:CDN 上找不到 SlimCore MSIX 包。
1260 10083 ERROR_ACCESS_DISABLED_BY_POLICY 此错误通常意味着Windows 程序包管理器无法安装 SlimCore MSIX 包。 事件查看器可以在0x800704EC显示十六进制错误代码。 AppLocker 策略可能会导致此错误代码。 可以禁用 AppLocker,也可以在本地安全策略 - 应用程序控制>策略 -> AppLocker 中添加 SlimCoreVdi 包的例外。 查看“使用 Teams 的新 VDI 解决方案进行优化”下 的步骤 3
1460 11683 ERROR_TIMEOUT MsTeamsVdi.exe 进程在启动时失败 (60 秒超时) 。
1722 RPC_S_SERVER_UNAVAILABLE “RPC 服务器不可用”MsTeamsVdi.exe 相关错误。
2000 16002 无插件 终结点没有 MsTeamsPlugin,或者如果具有 MsTeamsPlugin,则不会使用进程资源管理器) 加载 (检查。
2001 虚拟通道不可用 Citrix VDA WFAPI 上出错。
3000 24002 不需要 SlimCore 部署 此代码实际上不是错误。 这是一个很好的指标,表明用户使用的是 SlimCore 的新优化体系结构。
3001 24010 SlimCore 已加载 此代码实际上不是错误。 这是一个很好的指标,表明用户使用的是 SlimCore 的新优化体系结构。
3004 24035 插件不响应 尝试重启 RDP 或 ICA 会话。
3005 24043 下载时插件超时 未能在 2 分钟内下载 MSIX。
3007 24058 加载超时 SlimCore 下载或安装超时, (Internet 速度缓慢或应用就绪服务正忙于) 。
4000 ERROR_WINS_INTERNAL WINS 在处理命令时遇到错误。
15615 1951 ERROR_INSTALL_POLICY_FAILURE SlimCore MSIX 相关错误。 若要安装此应用,需要 Windows 开发人员许可证或启用旁加载的系统。 AllowAllTrustedApps regkey 可能设置为 0?
15616 ERROR_PACKAGE_UPDATING 与 SlimCore MSIX 相关的错误“无法启动应用程序,因为它当前正在更新”。
15700 APPMODEL_ERROR_NO_PACKAGE 进程没有包标识。 %LOCALAPPDATA%\Microsoft\WindowsApps 中没有 MsTeamsVdi 的别名。 重现错误时需要反馈中心日志 (请确保选择“开发人员平台”作为类别,并选择“应用部署”作为子类别)
16389 包管理器报告的E_FAIL 通常与加载错误代码 5 (ERROR_ACCESS_DENIED) 相同。 如果用户不是管理员,很可能是由 BlockNonAdminUserInstall 策略引起的。有关更多详细信息,请查看此链接

在 VM 上使用事件查看器进行故障排除

每个连接/断开连接事件都记录在虚拟机上运行的事件查看器中。 事件查看器还可以显示与客户端相关的错误。 按源 (Microsoft Teams VDI) 筛选,事件 ID (0) 。 可以在 VDI 的新 Teams 日志 部分找到错误代码。

注意

为了能够按源进行筛选,需要从提升的 powershell 窗口运行此命令:

PS C:\Windows\system32> New-EventLog -LogName Application -Source “Microsoft Teams VDI”

排查插件部署错误

可以在用户设备上的详细事件日志中找到诊断信息。 安装后,MsTeamsPluginCitrix.dll 将写入 CWA 文件夹。 仅对于 Citrix 平台,才会在终结点上创建以下密钥 (而不是 VM) :

密钥 密钥类型 密钥名称 键值
HKLM\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 String VirtualDriverEx MicrosoftTeamsVDI
HKLM\SOFTWARE\WOW6432Node\Citrix\ICAClient\Engine\Configuration\Advanced\Modules\MicrosoftTeamsVDI String DriverNameWin32 MsTeamsPluginCitrix.dll

若要调试安装,可以启用安装程序日志记录,但随后必须手动使用 msiexec 并传递正确的标志。 例如,如果当前未安装插件,则可以使用如下所示的日志进行安装:msiexec.exe /i MsTeamsPluginCitrix.msi /l*vx installer.log.txt。

SlimCoreVdi MSIX 部署错误疑难解答

请确保查看 终结点上的 SlimCore MSIX 暂存和注册 部分,因为某些 GPO 可能会阻止 MSIX 安装。

可以在用户设备上的详细事件日志中找到诊断信息。

  1. 转到 Windows Microsoft本地) > 应用程序和服务日志>事件查看器 (>。

  2. 检查以下类别下的可用日志:

    • AppxPackagingOM > Microsoft-Windows-AppxPackaging/Operational
    • >AppXDeployment-Server Microsoft-Windows-AppXDeploymentServer/Operational
  3. 查看 AppXDeployment-Server 下的日志。

错误 15615

错误 15615 通常意味着Windows 程序包管理器无法使用 SlimCoreVdi 安装 MSIX 包。

  • 确保终结点信任该 MSIX 的数字签名 (转到 MSIX > 属性 > 数字签名 > 详细信息) 。 这是一个有效的商店友好Microsoft签名,但客户可能配置了一些特殊内容。
  • 尝试启用 AllowAllTrustedApps 策略
  • 尝试允许从受信任的非存储源旁加载应用。
    • 在 Windows 10 上,此设置默认处于启用状态,因此请在此处对其进行修改,以防它被禁用:面向开发人员>的设置>更新和安全>旁加载应用。
    • 在Windows 11上,此设置默认启用:“设置>”“应用>高级应用设置>”选择在任意位置获取应用>的位置。

日志收集

日志记录可在以下位置找到:

  • 在客户端上:
    • AppData\Local\Microsoft\TeamsVDI\<vdi_vendor>-default-<cloudname>\skylib
    • AppData\Local\Microsoft\TeamsVDI\<vdi_vendor>-default-<cloudname>\media-stack
  • 在服务器上:
    • AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs\skylib