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

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

应用附加允许将应用程序从应用程序包动态附加到 Azure 虚拟桌面中的用户会话。 应用程序不会在会话主机或映像上本地安装,这样就可以为会话主机创建更少的自定义映像,并降低组织的作开销和成本。 使用应用附加传递应用程序还可以让你更好地控制用户可以在远程会话中访问的应用程序。

本文介绍如何使用 Azure 门户 和 Azure PowerShell在 Azure 虚拟桌面中使用应用附加添加和管理应用程序。 无法使用 Azure CLI 添加或管理应用附加应用程序。 在开始之前,请确保阅读 Azure 虚拟桌面中的应用附加概述。

先决条件

若要在 Azure 虚拟桌面中使用应用附加,需要满足以下条件:

  • 包含会话主机应用程序组和工作区的现有主机

  • 会话主机需要运行 受支持的 Windows 客户端作系统 ,并且必须至少打开其中一个作系统。 不支持Windows Server。

  • 会话主机需要加入Microsoft Entra ID或Active Directory 域服务 (AD DS) 域。

  • 与会话主机位于同一 Azure 区域中的 SMB 文件共享。 主机池中的所有会话主机都必须具有其计算机帐户的 读取 访问权限。 此文件共享用于存储应用程序映像。 有关文件共享要求的详细信息,请参阅 文件共享

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

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

  • 从存储在文件共享上的应用程序包或 App-V 包创建的 MSIX 或 Appx 磁盘映像。 有关详细信息,请参阅 创建映像,其中还可以下载预生成的 MSIX 包进行测试。 如果使用 App-V,请参阅 创建和管理 App-V 虚拟化应用程序

  • 若要添加 MSIX 映像,至少需要在资源组上分配的 桌面虚拟化参与者 Azure 基于角色的访问控制 (RBAC) 角色。 若要将用户分配到应用程序组,还需要 Microsoft.Authorization/roleAssignments/write 对应用程序组拥有权限。 包含此权限的内置 RBAC 角色是 用户访问管理员所有者

  • 如果要在本地使用 Azure PowerShell,请参阅将 Azure PowerShell 与 Azure 虚拟桌面配合使用,确保已安装 Az.DesktopVirtualizationMicrosoft Graph PowerShell 模块。 或者,使用 Azure Cloud Shell

  • 需要使用 4.2.1 或更高版本的 Az.DesktopVirtualization PowerShell 模块,该模块包含支持应用附加的 cmdlet。 可以从 PowerShell 库下载并安装 Az.DesktopVirtualization PowerShell 模块。

重要

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

警告

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

添加应用程序

若要将 MSIX 映像、Appx 映像或 App-V 包中的应用程序作为应用附加包添加到 Azure 虚拟桌面,请选择适用于你的方案的相关选项卡,并按照步骤作。

下面介绍如何使用 Azure 门户将 MSIX 映像、Appx 映像或 App-V 包添加为应用附加包:

  1. 登录 Azure 门户

  2. 在搜索栏中,键入 Azure 虚拟桌面 并选择匹配的服务条目以转到 Azure 虚拟桌面概述。

  3. 选择“ 应用附加”,然后选择“ + 创建”。

  4. 在“ 基本信息 ”选项卡上,完成以下信息:

    参数 说明
    订阅 从下拉列表中选择要向其添加 MSIX 映像、Appx 映像或 App-V 包的订阅。
    资源组 选择现有资源组或选择“ 新建 ”并输入名称。
    主机池 从下拉列表中选择现有主机池。
    位置 为应用附加包选择 Azure 区域。

    完成此选项卡后,选择“ 下一步”。

  5. 在“ 图像路径 ”选项卡上,完成以下信息:

    参数 说明
    映像路径 如果映像存储在 Azure 文件存储 或输入 UNC 中,请从“从存储帐户选择”以指定 UNC 路径。 后续字段取决于选择的选项。
    从存储帐户中选择
    存储帐户 选择映像位于的存储帐户。
    文件共享 选择“ 选择文件”,然后浏览到映像的文件共享和目录。 选中要添加的图像旁边的框,例如 MyApp.cim,然后选择“ 选择”。
    MSIX 包 从映像中选择 MSIX 或 Appx 包。
    输入 UNC
    UNC 输入映像文件的 UNC 路径。
    MSIX 包 从映像中选择 MSIX 或 Appx 包。
    任一选项
    显示名称 输入应用程序的友好名称。
    版本 检查是否显示预期的版本号。
    注册类型 选择要使用的 注册类型
    状态 选择包的初始 状态
    运行状况检查失败时的状态 如果包无法在会话主机上暂存,请选择该包的状态。 会话主机运行状况检查状态的 AppAttachHealthCheck 报告此状态。

    完成此选项卡后,选择“ 下一步”。

    提示

    完成此选项卡后,可以继续选择性地将应用程序分配给托管池、用户和组。 或者,如果要单独配置分配,请选择“ 查看 + 创建”,然后转到 “分配应用附加包”。

  6. 可选:在“ 分配 ”选项卡上,完成以下信息:

    1. 对于 “主机池”,选择要将应用程序分配到的主机池。

    2. 选择“ 添加用户或用户组”,然后搜索并选择要向其分配应用程序的用户或组。 完成后,选择“ 选择”。

    3. 查看添加的作业,然后选择“ 下一步”。

  7. 可选:在“ 标记 ”选项卡上,可以输入所需的任何名称/值对,然后选择“ 查看 + 创建”。

  8. 在“ 审阅 + 创建 ”选项卡上,确保验证通过并查看部署期间使用的信息,然后选择“ 创建 ”以添加该应用程序。

分配应用附加包

需要将应用附加包分配给主机池以及组和用户。 选择方案的相关选项卡,然后按照步骤作。

注意

用户帐户必须是 (AD DS 中创建并同步到 Azure AD) 的混合帐户,但组不会。

下面介绍如何使用 Azure 门户将应用程序包分配给主机池、用户和组:

主机池

  1. 在 Azure 虚拟桌面概述中,选择“ 应用附加”,然后选择要分配的应用附加包的名称。

  2. “管理”部分中,选择“ 主机池”:

  3. 选择“ + 分配”,然后从下拉列表中选择一个或多个主机池。 确保主机池中的所有会话主机都必须具有其计算机帐户的 读取 访问权限,如先决条件中所述。

  4. 选择“添加”。

组和用户

  1. 在 Azure 虚拟桌面概述中,选择“ 应用附加”,然后选择要分配的应用附加包的名称。

  2. “管理”部分中,选择“ 用户”:

  3. 选择“ + 添加”,然后从列表中选择一个或多个组和/或用户。

  4. 选择 “选择”。

注意

添加包,将其设置为活动,并将其分配给主机池和用户会自动使应用程序在桌面会话中可用。 如果要使用 RemoteApp,则需要将应用程序添加到 RemoteApp 应用程序组。 有关详细信息,请参阅 使用 RemoteApp 应用程序组发布 MSIX 或 Appx 应用程序。 无法使用应用附加将 MSIX 或 Appx 应用程序添加到桌面应用程序组。

更改注册类型和状态

可以通过更改 MSIX 和 Appx 包的注册类型和状态来管理它们。 选择方案的相关选项卡,然后按照步骤作。

下面介绍如何使用 Azure 门户更改包的注册类型和状态:

  1. 在 Azure 虚拟桌面概述中,选择“ 应用附加”。 应会看到主机池中所有现有包的列表。

  2. 选择要更改的包的名称。

    1. 若要更改注册类型,请选择“ 按需 ”或“ 登录时注册”,然后选择“ 保存”。

    2. 若要更改状态,请选择“ 非活动” 或“ 活动”,然后选择“ 保存”。

使用 RemoteApp 应用程序组发布 MSIX 或 Appx 应用程序

可以通过使用 RemoteApp 应用程序组发布 MSIX 和 Appx 应用程序,使用户可以使用它们。 使用应用附加时,无需将应用程序添加到桌面应用程序组,因为只需 分配应用附加包。 要发布的应用程序必须分配给主机池。

下面介绍如何使用 Azure 门户将应用程序从本文中添加的包添加到 RemoteApp 应用程序组:

  1. 在 Azure 虚拟桌面概述中,选择“ 应用程序组”,然后选择要向其添加应用程序的 RemoteApp 应用程序组。

  2. 依次选择“ 应用程序”、“ + 添加”。 确保应用程序组分配到的主机池中至少有一个会话主机处于打开状态。

  3. 在“ 基本信息 ”选项卡上,完成以下信息:

    参数 值/说明
    应用程序源 从下拉列表中选择“ 应用附加 ”。 如果要从 “开始”菜单 或通过指定文件路径添加应用程序,请参阅 使用 RemoteApp 发布应用程序
    从下拉列表中选择可用于主机池的包。 区域包来自 应用附加
    应用程序 从下拉列表中选择一个应用程序。
    应用程序标识符 输入应用程序的唯一标识符。
    显示名称 为用户提供的应用程序输入友好名称。
    说明 输入应用程序的说明。

    完成此选项卡后,选择“ 下一步”。

  4. 在“ 图标 ”选项卡上,选择“ 默认 ”以使用应用程序的默认图标,或选择“ 文件路径 ”以使用自定义图标。 对于 “文件路径”,请选择以下选项之一:

    • 浏览Azure 文件存储以使用 Azure 文件共享中的图标。 选择 “选择存储帐户 ”,然后选择包含图标文件的存储帐户,然后选择“ 选择图标文件”。 浏览到图标位于的文件共享和目录,检查要添加的图标旁边的框,例如 MyApp.ico,然后选择“选择”。 还可以使用 .png 文件。 对于 “图标索引”,请指定要使用的图标的索引号。 此数字通常为 0

    • 用于 使用文件共享中的图标的 UNC 文件路径。 对于 “图标路径”,请输入图标文件的 UNC 路径,例如 \\MyFileShare\MyApp.ico。 还可以使用 .png 文件。 对于 “图标索引”,请指定要使用的图标的索引号。 此数字通常为 0

    完成此选项卡后,选择“ 查看 + 添加”。

  5. 在“ 审阅 + 添加 ”选项卡上,确保验证通过并查看用于添加应用程序的信息,然后选择“ 添加 ”将应用程序添加到 RemoteApp 应用程序组。

更新现有包

可以通过提供包含已更新应用程序的新 MSIX 映像、Appx 映像或 App-V 包来更新现有包。 有关详细信息,请参阅 新版本的应用程序

若要就地更新现有包,请选择方案的相关选项卡,并按照步骤作。

下面介绍如何使用 Azure 门户更新现有包:

  1. 在 Azure 虚拟桌面概述中,选择“ 应用附加”。 应会看到所有现有包的列表。

  2. 选择要更新的包,然后从概述中选择“ 更新”。

  3. 输入更新包的信息:

    1. 订阅资源组 预填充了当前包的值。

    2. 选择要更新包的 主机池

    3. 从“ 从存储帐户选择”“输入 UNC”中选择映像路径。 后续字段取决于选择的选项。

      1. 对于 “从存储帐户中选择”,请选择包含已更新映像的 存储帐户 。 选择“ 选择文件”,然后浏览到映像的文件共享和目录。 选中要添加的图像旁边的框,例如 MyApp.cim,然后选择“ 选择”。
      2. 对于 “输入 UNC”,请输入映像文件的 UNC 路径。
    4. 对于 MSIX 包,请从映像中选择 MSIX 或 Appx 包。

  4. 完成字段后,选择“ 更新”。

删除应用附加包

可以删除不再需要的应用附加包。 无需先取消分配主机池或用户和组。 选择方案的相关选项卡,然后按照步骤作。

提示

还可以像其他应用程序类型一样,从应用程序组中删除作为 RemoteApp 发布的 MSIX 包中的应用程序。 有关详细信息,请参阅 删除应用程序

下面介绍如何使用 Azure 门户删除应用附加包:

  1. 在 Azure 虚拟桌面概述中,选择“ 应用附加”。 应会看到所有现有包的列表。

  2. 选中要删除的包名称旁边的框,然后选择“ 删除”。 包也会从它分配到的任何主机池中删除。

禁用自动更新

建议禁用 MSIX 和 Appx 应用程序的自动更新。 若要禁用自动更新,需要在会话主机上设置以下注册表值:

  • 密钥:HKLM\Software\Policies\Microsoft\WindowsStore

    • 类型:DWORD
    • 名称:自动下载
    • :2
    • 说明:禁用Microsoft Store 自动更新。
  • 密钥:HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager

    • 类型:DWORD
    • 名称:PreInstalledAppsEnabled
    • :0
    • 说明:禁用内容交付自动下载。
  • 密钥:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug

    • 类型:DWORD
    • 名称:ContentDeliveryAllowedOverride
    • :2
    • 说明:禁用内容交付自动下载。

可以使用 组策略 或 Intune 设置这些注册表值,具体取决于会话主机的管理方式。 还可以在每个会话主机上以管理员身份运行以下 PowerShell 命令来设置它们,但如果这样做,还应在作系统映像中设置它们:

# Disable Microsoft Store automatic update
If (!(Test-Path "HKLM:\Software\Policies\Microsoft\WindowsStore")) {
    New-Item -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Force
}
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Name AutoDownload -PropertyType DWORD -Value 2 -Force

# Disable content delivery automatic download
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager")) {
    New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Force
}
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name PreInstalledAppsEnabled -PropertyType DWORD -Value 0 -Force

# Disables content delivery automatic download
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug")) {
    New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Force
}
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Name ContentDeliveryAllowedOverride -PropertyType DWORD -Value 2 -Force

后续步骤

了解如何使用 RemoteApp 从开始菜单或文件路径发布应用程序。 有关详细信息,请参阅 发布应用程序