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

提示

Azure 虚拟桌面的新版应用附加可供使用。 选择本文顶部的按钮,在应用附加和 MSIX 应用附加之间进行选择,以查看相关文档

应用附加可用于将应用程序从应用程序包中动态附加到 Azure 虚拟桌面中的用户会话。 应用程序不会本地安装在会话主机或映像上,因此可以为会话主机创建较少的自定义映像,并降低组织的运营开销和成本。 通过应用附加交付应用程序还可以更好地控制用户可在远程会话中访问的应用程序。

MSIX 应用附加可用于将应用程序从应用程序包中动态附加到 Azure 虚拟桌面中的用户会话。 应用程序不会本地安装在会话主机或映像上,因此可以更轻松地为会话主机创建自定义映像,并降低组织的运营开销和成本。 通过 MSIX 应用附加交付应用程序还可以更好地控制用户可在远程会话中访问的应用程序。

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

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

重要

必须选择是对主机池使用应用附加还是 MSIX 应用附加。 不能将这两个版本用于同一主机池。

先决条件

若要在 Azure 虚拟桌面中使用应用附加,需要以下内容:

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

  • 会话主机需要加入 Microsoft Entra ID 或 Active Directory 域服务 (AD DS) 域。
  • 会话主机需要加入 Active Directory 域服务 (AD DS) 域。 不支持 Microsoft Entra ID。
  • 用户帐户需要是混合帐户(在 AD DS 中创建并同步到 Microsoft Entra ID)。 组可以是混合组,也可以是 Microsoft Entra ID 组。
  • 与会话主机位于同一 Azure 区域中的 SMB 文件共享。 主机池中所有会话主机的计算机帐户都必须具有读取访问权限。 此文件共享用于存储应用程序映像。 有关文件共享的要求的详细信息,请参阅文件共享

    若要在会话主机加入 Microsoft Entra ID 时使用 Azure 文件存储,需要将读者和数据访问 Azure 基于角色的访问控制 (RBAC) 角色分配给“Azure 虚拟桌面”和“Azure 虚拟桌面 ARM 提供程序”服务主体。 若要了解如何将 Azure RBAC 角色分配给 Azure 虚拟桌面服务主体,请参阅将 RBAC 角色分配给 Azure 虚拟桌面服务主体

  • 与会话主机位于同一 Azure 区域中的 SMB 文件共享。 主机池中所有会话主机的计算机帐户都必须具有读取访问权限。 此文件共享用于存储应用程序映像。 有关文件共享的要求的详细信息,请参阅文件共享
  • 从应用程序包创建并存储在文件共享上的 MSIX 或 Appx 磁盘映像。 有关详细信息,请参阅创建映像,也可以在其中下载预生成的 MSIX 包进行测试。
  • 从应用程序包创建并存储在文件共享上的 MSIX 映像。 有关详细信息,请参阅创建映像,也可以在其中下载预生成的 MSIX 包进行测试。
  • 需要使用版本 4.2.1 的 Az.DesktopVirtualization PowerShell 模块,其中包含支持应用附加的 cmdlet。 可以从 PowerShell 库下载并安装 Az.DesktopVirtualization PowerShell 模块。

重要

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

  • 必须选择是对主机池使用应用附加还是 MSIX 应用附加。 不能将这两个版本用于同一主机池中的同一包。

重要

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

添加应用程序

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

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

  1. 登录 Azure 门户

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

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

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

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

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

  5. 在“映像路径”选项卡上,填写以下信息

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

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

    提示

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

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

    1. 对于“主机池”,选择要向其分配应用程序的主机池。 如果已将 MSIX 应用附加用于主机池,则无法选择该主机池,因为无法将两个版本的应用附加用于同一主机池

    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 包的注册类型状态来管理 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 应用程序组中。

更新现有包

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

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

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

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

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

  3. 输入更新后的包的信息:

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

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

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

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

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

移除应用附加包

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

提示

也可以从应用程序组中移除作为 RemoteApp 发布的 MSIX 软件包中的应用程序,方法与其他应用程序类型相同。 有关详细信息,请参阅移除应用程序

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

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

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

将 MSIX 映像添加到主机池

若要将 MSIX 映像添加到主机池,请选择适合你的方案的相关选项卡并按照步骤操作。

下面介绍如何使用 Azure 门户添加 MSIX 映像:

  1. 登录 Azure 门户

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

  3. 选择主机池,然后选择要向其中添加 MSIX 映像的主机池的名称

  4. 从主机池概述中选择“MSIX 包”,然后选择“+ 添加”

  5. 对于“MSIX 映像路径”,请输入指向文件共享上的 MSIX 映像的有效 UNC 路径,例如 \\fileshare\Apps\MyApp\MyApp.cim;然后选择“添加”,这会检查路径是否有效。

  6. 验证路径后,会显示更多字段。 填写以下信息:

    参数 说明
    MSIX 包 从下拉菜单中选择相关的 MSIX 包名称。
    包应用程序 这会显示应用,并且不可配置
    显示名称 为包输入一个易记名称。
    版本 检查是否显示了预期的版本号。
    登记类型 选择要使用的注册类型
    State 选择包的初始状态
  7. 完成这些字段后,选择“添加”

更改注册类型和状态

可以通过更改 MSIX 和 Appx 包的注册类型状态来管理主机池中的 MSIX 包。 选择你的方案对应的相关选项卡并按照步骤操作。

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

  1. 从 Azure 虚拟桌面概述中,选择“主机池”,然后选择 MSIX 包添加到的主机池的名称

  2. 从主机池概述中选择“MSIX 包”。 应会在主机池中看到所有现有 MSIX 包的列表。

  3. 选择要更改的 MSIX 包的名称。

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

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

发布 MSIX 应用程序

可以将 MSIX 应用程序作为桌面或 RemoteApp 应用程序组的一部分提供给用户。 桌面应用程序组可让这些应用程序出现在用户的开始菜单中,而 RemoteApp 应用程序组意味着用户可以单独流式传输应用程序。 有关应用程序组的详细信息,请参阅术语。 选择你的方案对应的相关选项卡并按照步骤操作。

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

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

  2. 选择“应用程序”,然后选择“+ 添加”。 确保应用程序组分配到的主机池中至少有一台会话主机已开机。

  3. 在“基本信息”选项卡上,可看到的选项取决于应用程序组是面向桌面还是 RemoteApp

    1. 对于桌面应用程序组,请填写以下信息:

      参数 值/说明
      应用程序源 “MSIX 包”会自动选中并灰显
      从下拉列表中选择可用于主机池的包。
      申请标识符 输入应用程序的唯一标识符。
      显示名称 为用户输入一个易记应用程序名称。
      说明 输入应用程序描述。

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

    2. 对于 RemoteApp 应用程序组,请填写以下信息:

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

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

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

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

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

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

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

删除 MSIX 包

可以移除不再需要的 MSIX 包。 选择你的方案对应的相关选项卡并按照步骤操作。

提示

也可以只从应用程序组中移除 MSIX 软件包中的应用程序,方法与其他应用程序类型相同。 有关详细信息,请参阅移除应用程序

下面介绍如何使用 Azure 门户从主机池中移除 MSIX 包:

  1. 从 Azure 虚拟桌面概述中,选择“主机池”,然后选择 MSIX 包添加到的主机池的名称

  2. 从主机池概述中选择“MSIX 包”。 应会在主机池中看到所有现有 MSIX 包的列表。

  3. 选中要移除的 MSIX 包名称旁边的框,然后选择“移除”

禁用自动更新

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

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

  • Key:HKLM\Software\Policies\Microsoft\WindowsStore

    • 类型:DWORD
    • Name:AutoDownload
    • Value:2
    • 说明:禁用 Microsoft Store 自动更新
  • Key:HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager

    • 类型:DWORD
    • Name:PreInstalledAppsEnabled
    • :0
    • 说明:禁用内容传送自动下载。
  • Key:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug

    • 类型:DWORD
    • Name:ContentDeliveryAllowedOverride
    • Value:2
    • 说明:禁用内容传送自动下载。

可以使用组策略设置这些注册表值,具体取决于管理会话主机的方式。 还可以通过在每个会话主机上以管理员身份运行以下 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 从“开始”菜单或文件路径发布应用程序。 有关详细信息,请参阅发布应用程序