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

Azure 虚拟桌面中的应用附加

应用附加允许将应用程序从应用程序包动态附加到 Azure 虚拟桌面中的用户会话。 应用程序不会在本地安装到会话主机或映像上,因此可以更轻松地为会话主机创建自定义映像,并降低组织的运营开销和成本。 应用程序在容器中运行,容器将用户数据、作系统和其他应用程序分开,从而提高安全性并使其更易于进行故障排除。

下面是应用附加的一些主要优势:

  • 应用程序是使用 RemoteApp 或作为桌面会话的一部分传递的。 权限按每个用户应用每个应用程序,让你可以更好地控制用户可以在远程会话中访问的应用程序。 桌面用户仅看到分配给他们的应用附加应用程序。
  • 同一应用程序包可以跨多个主机池使用。
  • 应用程序可以在与应用程序包位于同一 Azure 区域中运行 Windows 客户端作系统的任何会话主机上运行。
  • 可以使用新的磁盘映像将应用程序升级到新的应用程序版本,而无需维护时段。
  • 用户可以在同一会话主机上并发运行同一应用程序的多个版本。
  • 使用情况和运行状况遥测可通过 Azure Log Analytics 获取。

可以使用以下应用程序包类型和文件格式:

包类型 文件格式
MSIX 和 MSIX 捆绑包 .msix
.msixbundle
Appx 和 Appx 捆绑包 .appx
.appxbundle
App-V .appv

MSIX 和 Appx 是 Windows 应用程序包格式,可为 Windows 应用程序提供新式打包体验。 应用程序在容器中运行,容器将用户数据、作系统和其他应用程序分开,从而提高安全性并使其更易于进行故障排除。 MSIX 和 Appx 相似,其中main区别在于 MSIX 是 Appx 的超集。 MSIX 支持 Appx 的所有功能,以及其他使其更适合企业使用的功能。

Microsoft Application Virtualization (App-V) for Windows 将 Win32 应用程序作为虚拟应用程序提供给用户。 虚拟应用程序安装在集中管理的服务器上,并根据需要以服务的形式实时交付给用户。 用户从熟悉的接入点启动虚拟应用程序,并与其交互,就像它们是在本地安装的一样。

可以从软件供应商那里获取 MSIX 包,也可以 从现有安装程序创建 MSIX 包。 若要了解有关 MSIX 的详细信息,请参阅 什么是 MSIX?

用户如何获取应用程序

可以将不同的应用程序分配给同一主机池或同一会话主机上的不同用户。 在登录期间,必须满足以下三项要求,用户才能在正确的时间获取正确的应用程序:

  • 必须将应用程序分配给主机池。 通过将应用程序分配到主机池,你可以选择应用程序可用的主机池,以确保应用程序可以使用正确的硬件资源。 例如,如果应用程序是图形密集型应用程序,可以确保它仅在具有 GPU 优化会话主机的主机池上运行。

  • 用户必须能够登录到主机池中的会话主机,因此他们必须位于 Desktop 或 RemoteApp 应用程序组中。 对于 RemoteApp 应用程序组,必须将应用附加应用程序添加到应用程序组,但无需将应用程序添加到桌面应用程序组。

  • 必须将应用程序分配给用户。 可以使用组或用户帐户。

如果满足所有这些要求,则用户将获取应用程序。 此过程可控制谁在哪个主机池上获取应用程序,以及单个主机池中的用户,甚至登录到同一个多会话会话主机以获取不同的应用程序组合。 不符合要求的用户不会获取该应用程序。

应用程序映像

需要从现有应用程序包 创建 MSIX 映像 ,然后才能将 MSIX 应用程序包与 Azure 虚拟桌面配合使用。 或者,可以 改用 App-V 包。 然后,需要将每个 MSIX 映像或 App-V 包存储在会话主机可访问的文件共享上。 有关文件共享要求的详细信息,请参阅 文件共享

磁盘映像类型

对于 MSIX 和 Appx 磁盘映像,可以使用 复合映像文件系统 (CimFS) VHDXVHD,但我们不建议使用 VHD。 装载和卸载 CimFS 映像的速度比 VHD 和 VHDX 映像更快,占用的 CPU 和内存也更少。 如果会话主机正在运行Windows 11,则仅建议对应用程序映像使用 CimFS。

CimFS 映像是多个文件的组合:一个文件具有 .cim 文件扩展名,并包含元数据,以及至少两个其他文件,一个文件以 开头 objectid_ ,另一个文件以 region_ 包含实际应用程序数据。 文件附带的文件 .cim 没有文件扩展名。 下表是你为 CimFS 映像找到的示例文件列表:

文件名 Size
MyApp.cim 1 KB
objectid_b5742e0b-1b98-40b3-94a6-9cb96f497e56_0 27 KB
objectid_b5742e0b-1b98-40b3-94a6-9cb96f497e56_1 20 KB
objectid_b5742e0b-1b98-40b3-94a6-9cb96f497e56_2 42 KB
region_b5742e0b-1b98-40b3-94a6-9cb96f497e56_0 428 KB
region_b5742e0b-1b98-40b3-94a6-9cb96f497e56_1 217 KB
region_b5742e0b-1b98-40b3-94a6-9cb96f497e56_2 264,132 KB

下表是 VHDX 和 CimFS 之间的性能比较。 这些数字是测试运行的结果,每个格式有 500 个文件,每个文件 300 MB,测试是在 DSv4 Azure 虚拟机上执行的。

跃点数 VHD CimFS
平均装载时间 356 毫秒 255 毫秒
平均卸载时间 1615 毫秒 36 毫秒
内存占用情况 8 GB) 的 6% ( 8 GB) 的 2% (
CPU (计数峰值) 多次最大化 无效果

警告

当前有一个问题会影响 Windows 11 版本 24H2 的 CimFS 映像,从而阻止装载映像。 我们正在积极研究一个预计于 2025 年 6 月提供的修补程序。 解决方法是改用 VHDX 映像,或使用 24H2 之前的 Windows 11 版本。

应用程序注册

应用附加在登录期间将包含应用程序从文件共享装载到用户会话的磁盘映像或 App-V 包,然后注册过程使应用程序可供用户使用。 有两种类型的注册:

  • 按需:应用程序仅在登录时部分注册,应用程序的完整注册将推迟到用户启动应用程序。 按需是我们建议使用的注册类型,因为它不会影响登录到 Azure 虚拟桌面所需的时间。 按需是默认注册方法。

  • 登录阻止:分配给用户的每个应用程序都已完全注册。 注册发生在用户登录到其会话时发生,这可能会影响登录到 Azure 虚拟桌面的时间。

重要

所有 MSIX 和 Appx 应用程序包都包含证书。 你负责确保证书在你的环境中受信任。 适当的信任链支持自签名证书。

应用附加不会限制用户可以使用的应用程序数。 应考虑可用的网络吞吐量和每个文件打开的句柄数, (每个映像) 文件共享支持,因为它可能会限制你可以支持的用户或应用程序的数量。 有关详细信息,请参阅 文件共享

应用程序状态

应用程序包设置为 活动非活动。 设置为活动的包使应用程序可供用户使用。 Azure 虚拟桌面会忽略设置为 非活动状态 的包,并且不会在用户登录时添加包。

新版本的应用程序

可以通过提供包含更新的应用程序的新映像来添加应用程序的新版本。 可以通过两种方式使用此新映像:

  • 并排:使用新的磁盘映像创建新应用程序,并将其分配给与现有应用程序相同的主机池和用户。

  • 就地:创建应用程序版本号更改的新映像,然后更新现有应用程序以使用新映像。 版本号可以更高或更低,但不能使用相同的版本号更新应用程序。 在所有用户使用完现有映像之前,请勿删除它。

更新后,用户下次登录时会获取更新的应用程序版本。 用户无需停止使用以前的版本来添加新版本。

标识提供者

下面是可用于应用附加的标识提供者:

标识提供程序 状态
Microsoft Entra ID 支持
Active Directory 域服务 (AD DS) 支持
Microsoft Entra 域服务 不支持

文件共享

应用附加要求将应用程序映像存储在 SMB 文件共享上,然后在登录期间装载到每个会话主机上。 应用附加不依赖于文件共享使用的存储结构类型。 建议使用Azure 文件存储,因为它与Microsoft Entra ID或Active Directory 域服务兼容,并在成本和管理开销之间提供巨大价值。

也可以使用Azure NetApp 文件,但这要求会话主机加入到Active Directory 域服务。

以下部分提供有关文件共享所需的权限、性能和可用性的一些指导。

权限

每个会话主机从文件共享装载应用程序映像。 需要配置 NTFS 和共享权限,以允许每个会话主机对象对文件和文件共享的读取访问权限。 配置正确权限的方式取决于用于文件共享和会话主机的存储提供程序和标识提供者。

  • 若要在会话主机加入到Microsoft Entra ID时使用Azure 文件存储,需要将“读取者”和“数据访问 Azure 基于角色的访问控制 (RBAC) ”角色分配给 Azure 虚拟桌面Azure 虚拟桌面 ARM 提供程序服务主体。 此 RBAC 角色分配允许会话主机使用访问密钥或Microsoft Entra访问存储帐户。

  • 若要了解如何将 Azure RBAC 角色分配给 Azure 虚拟桌面服务主体,请参阅 将 RBAC 角色分配给 Azure 虚拟桌面服务主体。 在将来的更新中,无需分配 Azure 虚拟桌面 ARM 提供程序 服务主体。

    有关将Azure 文件存储用于已加入Microsoft Entra ID、Active Directory 域服务或Microsoft Entra 域服务的会话主机的详细信息,请参阅基于标识的Azure 文件存储概述SMB 访问的身份验证选项

    警告

    Azure 虚拟桌面 ARM 提供程序 服务主体分配给存储帐户,可将 Azure 虚拟桌面服务授予存储帐户中的所有数据。 建议仅在此存储帐户中存储与应用附加一起使用的应用,并定期轮换访问密钥。

  • 对于Active Directory 域服务Azure 文件存储,需要分配存储文件数据 SMB 共享读取者 Azure 基于角色的访问控制 (RBAC) 角色作为默认共享级别权限,并配置 NTFS 权限以授予对每个会话主机的计算机对象的读取访问权限。

    有关将Azure 文件存储用于已加入Microsoft Entra ID、Active Directory 域服务或Microsoft Entra 域服务的会话主机的详细信息,请参阅基于标识的Azure 文件存储概述SMB 访问的身份验证选项

  • 对于Azure NetApp 文件,可以创建 SMB 卷并配置 NTFS 权限,以授予对每个会话主机的计算机对象的读取访问权限。 会话主机需要加入到Active Directory 域服务或Microsoft Entra 域服务。

可以使用 PsExec 验证权限是否正确。 有关详细信息,请参阅 检查文件共享访问

性能

根据映像中存储了多少个打包的应用程序,要求可能会有很大差异,你需要测试应用程序以了解你的要求。 对于较大的映像,需要分配更多带宽。 下表提供了单个 1 GB 映像或 App-V 包的要求示例,其中包含每个会话主机所需的一个应用程序:

资源 要求
稳定状态 IOP 一个 IOP
计算机启动登录 10 个 IOP
延迟 400 毫秒

若要优化应用程序的性能,建议:

  • 文件共享应与会话主机位于同一 Azure 区域。 如果使用 Azure 文件存储,则存储帐户必须与会话主机位于同一 Azure 区域。

  • 从防病毒扫描中排除包含应用程序的磁盘映像,因为它们是只读的。

  • 确保存储和网络结构可以提供足够的性能。 应避免将同一文件共享与 FSLogix 配置文件容器配合使用。

可用性

Azure 虚拟桌面的任何灾难恢复计划都必须包括将文件共享复制到辅助故障转移位置。 还需要确保在辅助位置中可访问文件共享路径。 例如,可以将分布式文件系统 (DFS) 命名空间与 Azure 文件存储 配合使用,以便在不同的文件共享之间提供单个共享名称。 若要详细了解 Azure 虚拟桌面的灾难恢复,请参阅 设置业务连续性和灾难恢复计划

Azure 文件

Azure 文件存储对每个根目录、目录和文件的打开句柄数有限制。 VHDX 或 CimFS 磁盘映像是使用会话主机的计算机帐户装载的,这意味着每个磁盘映像(而不是每个用户)每个会话主机打开一个句柄。 有关限制和大小调整指南的详细信息,请参阅Azure 文件存储可伸缩性和性能目标以及 Azure 虚拟桌面Azure 文件存储大小调整指南

MSIX 和 Appx 包证书

所有 MSIX 和 Appx 包都需要有效的代码签名证书。 若要将这些包与应用附加配合使用,需要确保在会话主机上信任整个证书链。 代码签名证书具有对象标识符 1.3.6.1.5.5.7.3.3。 可以从以下获取包的代码签名证书:

获取证书后,需要使用证书对 MSIX 或 Appx 包进行数字签名。 创建 MSIX 包时,可以使用 MSIX 打包工具 对包进行签名。 有关详细信息,请参阅 从任何桌面安装程序创建 MSIX 包

若要确保在会话主机上信任证书,需要会话主机信任整个证书链。 会话主机如何信任证书链取决于你从何处获取证书,以及如何管理会话主机和使用的标识提供者。 下表提供了一些有关如何确保证书在会话主机上受信任的指导:

  • 公共 CA:在 Windows 和 Windows Server 中,默认信任来自公共 CA 的证书。

  • 内部企业 CA

    • 对于加入 Active Directory 的会话主机,AD CS 配置为内部企业 CA,默认情况下受信任并存储在 Active Directory 域服务 的配置命名上下文中。 当 AD CS 配置为独立 CA 时,需要配置组策略,以便将根证书和中间证书分发到会话主机。 有关详细信息,请参阅使用 组策略 将证书分发到 Windows 设备

    • 对于已加入Microsoft Entra ID的会话主机,可以使用Microsoft Intune将根证书和中间证书分发给会话主机。 有关详细信息,请参阅Microsoft Intune的受信任的根证书配置文件

    • 对于使用 Microsoft Entra 混合联接的会话主机,可以根据要求使用上述任一方法。

  • 自签名:将受信任的根安装到每个会话主机上 的受信任的根证书颁发机构 存储。 建议不要使用组策略或Intune分发此证书,因为它只应用于测试。

重要

应为包添加时间戳,使其有效期可能长于证书的到期日期。 否则,证书过期后,需要使用新的有效证书更新包,并再次确保会话主机信任证书链。

后续步骤

了解如何 在 Azure 虚拟桌面中添加和管理应用附加应用程序