Citrix Virtual Apps and Desktops

应用程序包

应用程序包是 Citrix® 管理的预配置应用程序部署。它们允许应用程序虚拟化,这意味着应用程序独立于用户设备的操作系统和界面运行。

应用程序包简化了应用程序管理,减少了 IT 开销,并确保应用程序在其整个生命周期中保持安全和正常运行。

Citrix 支持以下打包技术,用于向用户交付应用程序:

本文将介绍如何在 Citrix Virtual Apps and Desktops™ 环境中部署和交付这些打包应用程序。

注意:

  • 从版本 2511 开始,Citrix Web Studio(基于 Web)是 Citrix Virtual Apps and Desktops™ 唯一的管理控制台。Citrix Studio(基于 MMC)已从安装程序中移除。本文仅适用于 Web Studio。有关 Citrix Studio 的信息,请参阅 Citrix Virtual Apps and Desktops 7 2212 或更早版本中的相应文章。
  • 我们不建议在部署和交付应用程序包时互换使用 Web Studio 和 Citrix Studio。两者使用不同的机制,这可能导致差异,例如 App-V 服务器信息在一个中显示正确而在另一个中不显示正确。此外,请注意 Citrix Studio 仅支持 App-V。

App-V 应用程序

应用程序虚拟化 (App-V) 是 Microsoft 的一项技术,允许流式传输和访问应用程序,而无需在最终用户设备上进行安装。Citrix Virtual Apps and Desktops 可以使用 App-V 交付应用程序,提供一种集中高效地管理跨各种客户端计算机的应用程序的方式。

有关交付 App-V 打包应用程序时所涉及的组件和概念的更多信息,请参阅 Microsoft 文档:适用于 Windows 客户端的应用程序虚拟化 (App-V) 概述

重要术语

  • 管理服务器:提供集中式控制台来管理 App-V 基础结构,并将虚拟应用程序交付给 App-V Desktop Client 和 Remote Desktop Services Client。App-V 管理服务器负责身份验证、请求以及提供管理员所需的安全、计量、监控和数据收集功能。该服务器使用 Active Directory 和支持工具来管理用户和应用程序。
  • 发布服务器:为特定用户提供 App-V 客户端应用程序,并托管虚拟应用程序包以进行流式传输。它从管理服务器获取包。
  • 动态配置文件:App-V 包可以使用动态配置文件进行自定义,这些文件应用于包后可用于更改其特性。例如,您可以使用它们来定义额外的应用程序快捷方式和行为。有关更多信息,请参阅动态配置文件

动态配置文件

Citrix App-V 支持两种类型的动态配置文件。文件设置在应用程序启动时应用:

  • 部署配置文件为所有用户提供计算机范围的配置。这些文件应命名为 <packageFileName>_DeploymentConfig.xml,并位于其所应用的 App-V 包所在的同一文件夹中。单管理员和双管理员管理都支持这些文件。
  • 用户配置文件提供用户特定的配置,支持对包进行每用户自定义。单管理员支持以下格式命名的用户配置文件:<packageFileName>_[UserSID | Username | GroupSID |GroupName_]UserConfig.xml,并位于其所应用的 App-V 包所在的同一文件夹中。

    当特定包存在多个用户配置文件时,它们按以下优先级应用:

    1. User SID
    2. Username
    3. AD Group SID(第一个找到的优先)
    4. AD Group Name(第一个找到的优先)
    5. Default

    例如:

     MyAppVPackage_S-1-5-21-000000001-0000000001-000000001-001_UserConfig.xml
     MyAppVPackage_joeblogs_UserConfig.xml
     MyAppVPackage_S-1-5-32-547_UserConfig.xml
     MyAppVPackage_Power Users_UserConfig.xml
     MyAppVPackage_UserConfig.xml
     <!--NeedCopy-->
    

    注意:

    文件名的用户特定部分也可以选择性地出现在末尾(例如 MyAppVPackage_UserConfig_joeblogs.xml)。

重要:

当用户会话中打开了包中的应用程序时,您无法应用对动态部署配置的更改。如果其他用户(但不是当前用户)打开了包中的应用程序,您可以应用对动态用户配置文件的更改。

动态配置文件位置

在单管理员管理中,Citrix App-V 组件仅处理与其 App-V 包位于同一文件夹中的动态配置文件。

当包中的应用程序启动时,对相应动态配置文件的任何更改都将重新应用。如果您的动态配置文件与其包位于不同位置,请使用映射文件将包映射到其部署配置文件。

要创建映射文件:

  1. 打开一个新文本文件。
  2. 对于每个动态配置文件,添加一行以 <PackageGuid> : path 格式指定程序包的路径。

    例如:

    F1f4fd78ef044176aad9082073a0c780 : c:\widows\file\packagedeploy.xml
    <!--NeedCopy-->
    
  3. 将文件保存为 ctxAppVDynamicConfigurations.cfg,并将其放在与程序包相同的文件夹中。

每次启动程序包中的应用程序时,都会在与 App-V 程序包相同的 UNC 共享上的整个目录层次结构中向上递归搜索此文件。

方法

您可以使用以下方法交付和管理 App-V 程序包:

  • 双重管理:在此方法中,Citrix Virtual Apps and Desktops 和 App-V 服务器协同工作以交付和管理程序包。此方法要求 Citrix Virtual Apps and Desktops 定期刷新 App-V 服务器状态的快照视图。它会产生硬件、基础架构和管理开销。Citrix Virtual Apps and Desktops 和 App-V 服务器必须保持同步,尤其是在用户权限方面。

    此方法最适用于紧密耦合的 App-V 和 Citrix 部署。在此方法中:

    • App-V 管理服务器 处理动态配置文件
    • 安装在 VDA 计算机上的 App Packages Delivery Component:管理应用程序启动所需的相应发布服务器的注册。

    这可确保发布服务器在适当的时间与用户同步。发布服务器使用其配置的设置来维护应用程序程序包生命周期的其他方面(例如登录时刷新和连接组)。

  • 单一管理:应用程序程序包存储在网络共享上。Citrix Virtual Apps and Desktops 独立交付和管理程序包。

    此方法可减少开销,因为部署中不需要 App-V 服务器和数据库基础架构。

    在此方法中,您将 App-V 程序包存储在网络共享上,并将它们的元数据从该位置上传到您的环境中。然后,安装在 VDA 计算机上的 App Packages Delivery Component 按如下方式管理和交付应用程序:

    • 在应用程序启动时处理部署配置文件和用户配置文件。
    • 管理主机上程序包生命周期的所有方面。

注意:

  • 您可以同时使用一种或两种管理方法。换句话说,当您将应用程序添加到交付组时,这些应用程序可以来自 App-V 服务器上或网络共享上的 App-V 程序包。
  • 如果您同时使用两种管理方法,并且 App-V 程序包在两个位置都有动态配置文件,则使用 App-V 服务器中的文件(双重管理)。
  • 当您在 Web Studio 导航窗格中选择“应用程序程序包”时,显示屏会显示程序包名称和类型。程序包类型列指示用于交付程序包的技术以及它们在“应用程序库”中的引用位置。当您选择一个程序包时,详细信息窗格会列出程序包中的应用程序和快捷方式。

MSIX 和 MSIX app attach 应用程序

MSIX 是一种 Windows 应用程序程序包格式,可为所有 Windows 应用程序提供现代化的打包体验。MSIX 适用于各种 Windows 应用程序类型,包括 Win32、.NET 和 UWP 应用程序。

MSIX app attach 利用预先扩展到虚拟硬盘上的 MSIX 程序包,这些程序包可以根据需要挂载到目标计算机,而不是流式传输程序包内容。它可以缩短部署时间、减少网络流量并降低目标计算机上的 IOPS,但需要额外的工作来创建和维护 app attach 磁盘。

Citrix Virtual Apps and Desktops 通过安装在 VDA 计算机上的 App Packages Delivery Component 向用户交付 MSIX 和 MSIX app attach 应用程序。此组件管理主机上程序包生命周期的所有方面。

有关 MSIX 和 MSIX app attach 的更多信息,请参阅 Microsoft 文档:MSIX 文档Azure Virtual Desktop 中的 App Attach

注意:

  • 我们仅支持桌面和服务器 VDA 上的本机 MSIX 程序包,以及桌面 VDA 上 .vhd.vhdx.cim 磁盘映像格式的 MSIX app attach。
  • Microsoft 不为 Server 2019 提供 AppAttach 实现。虽然 AppAttach 存在于 Server 2022 和 2025 中,但 Microsoft 不支持这些版本上的 AppAttach。因此,我们也不支持 Server 2022 和 2025 上的 AppAttach。
  • 在 Windows Server 2019 上启用旁加载。
  • 确保 VDA 信任用于签署程序包的证书。

FlexApp 应用程序

FlexApp 是 Liquidware 开发的一种应用程序分层解决方案,它可以在不通过传统应用程序安装过程修改底层基础映像的情况下,将任何应用程序附加到 Windows 会话。

FlexApp One 应用程序封装在一个可共享的单个文件中,允许它们在 Windows 会话上运行,而无需额外的应用程序层。用户可以通过单击容器文件启动应用程序,这会快速将一个或多个应用程序集成到其 Windows 工作区中。

Citrix 通过安装在 VDA 计算机上的 App Packages Delivery Component 和 FlexApp 交付代理向用户交付 FlexApp 应用程序。这两个组件管理主机上程序包生命周期的所有方面。

Elastic App 应用程序

Elastic App 技术是 Citrix App Layering 的一项功能,可让您在登录时动态地将应用程序层分配给用户,而不是将其安装到基础映像中。借助 Elastic App 技术,应用程序会跟随用户在不同的虚拟机之间移动,确保用户始终可以访问所需的应用程序,而不会使主映像臃肿。

Citrix Virtual Apps and Desktops 通过 Citrix Personalization 组件和 Application Layering Enterprise Layer Manager (ELM) 将 Elastic App 应用程序交付给用户。这两个组件管理主机上软件包生命周期的所有方面。有关 Application Layering Enterprise Layer Manager 的更多信息,请参阅 Citrix App Layering™ 文档

Cloudpaging 应用程序

Cloudpaging 是 Numecent 的应用程序流技术,无需更改基础映像即可将应用程序交付到 Windows 会话。

借助 Cloudpaging,应用程序几乎可以即时启动,因为只有一小部分代码(通常不到 10%)会首先进行流式传输。其余组件在用户访问时在后台进行流式传输,从而提供无缝体验。

对于 Citrix 环境,VDA 上的 App Packages Delivery Component 与 Numecent Cloudpaging Player 协同工作以管理应用程序生命周期。Citrix 组件负责协调交付,而 Cloudpaging Player 则处理会话中的按需流式传输和执行。

配置要求

请考虑以下配置详细信息:

Cloudpaging Player 和 LogoffCheckSysModules

将虚拟发布的应用程序与 Cloudpaging 容器结合使用时,请配置以下设置以允许会话注销:

设置
注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
值名称 LogoffCheckSysModules
值类型 REG_SZ
值数据 CoreHelper.exe

用于列入白名单的 URL

除了标准的 URL 白名单要求外,VDA 还需要访问以下端点:

参数
URL external-api.cloudpager.net
端口 443
客户端 Cloudpager PoSh Module
基于 Web 的正向代理配置
  • 允许出站访问
  • 需要绕过身份验证
描述 Cloudpager PowerShell Module

或者,您可以创建一个专用的交付组,其中包含一个 VDA,该 VDA 仅用于执行 Cloudpager 发现,以限制所需的白名单 URL。建议创建一个交付组,其中包含一台已安装 VDA 2511 或更高版本App Packages Delivery Component 的计算机。

有关 Cloudpager Client 网络和防火墙要求的更多信息,请参阅 Numecent 知识库文章

部署和交付应用程序包

先决条件

为了支持交付 App-V、MSIX、MSIX app attach、FlexApp 包、Elastic App 应用程序和 Cloudpaging 包,您必须首先在 VDA 计算机上安装 App Packages Delivery Component。有关详细信息,请参阅在 VDA 计算机上安装 App Packages Delivery Component

在 VDA 计算机上安装 App Packages Delivery Component

App Packages Delivery Component 管理 App-V、MSIX、MSIX app attach、FlexApp、Elastic App 和 Cloudpaging 格式的应用程序包的发布过程。默认情况下,安装 VDA 时不会安装此组件。您可以在 VDA 安装期间或之后安装此组件。

要在 VDA 安装期间安装此组件,请使用以下任一方法:

  • 在安装向导中,转到“附加组件”页面,然后选择“App Packages Delivery Component”复选框。
  • 在命令行界面中,使用 /includeadditional "Citrix Personalization for App-V – VDA" 选项。

要在 VDA 安装后安装此组件,请按照以下步骤操作:

  1. 在 VDA 计算机上,转到“控制面板”>“程序”>“程序和功能”,右键单击 Citrix Virtual Delivery Agent,然后选择“更改”。
  2. 在出现的向导中,继续转到“附加组件”页面,然后启用“App Packages Delivery Component”复选框。

注意:

  • Microsoft App-V Desktop Client 是在用户设备上运行 App-V 软件包中的虚拟应用程序的组件。Windows 10(1607 或更高版本)以及 Windows Server 2019 及更高版本已包含此 App-V 客户端软件。您只需在 VDA 计算机上启用它即可。有关详细信息,请参阅此 Microsoft 文档文章:启用 App-V 内置客户端
  • 对于 FlexApp 应用程序,请在 VDA 上安装 FlexApp One Agent 以及 App Packages Delivery Component。
  • 对于 Elastic App 应用程序,请在 VDA 上安装 启用 App Layering 的映像 以及 App Packages Delivery Component。
  • 对于 Cloudpaging 应用程序,请在 VDA 上安装 Cloudpaging Player 以及 App Packages Delivery Component。

安装 FlexApp One Agent

  1. 在 VDA 上启动管理员命令提示符。
  2. 找到任何 FlexApp One 软件包的网络路径。

  3. 输入以下命令:

    \\path\to\any\FlexAppOnePackage.exe --install
    <!--NeedCopy-->
    
  4. 接受出现的任何提示。

安装启用 App Layering 的映像

  1. 设置 App Layering。 按照 Citrix App Layering 文档中的说明进行操作。该过程包括:

    1. 设置 Enterprise Layer Manager (ELM)。
    2. 导入黄金 OS 映像。
    3. 创建平台层。
    4. 创建应用程序层。
    5. 在 ELM 中,为要交付的每个应用程序层选择 Enable this App Layer for use with Studio App Packages 复选框。
  2. 在 VDA 计算机上安装包含 Elastic Layering 组件的映像。您可以使用以下方法之一:

    1. 从 ELM 部署已启用 Elastic Layering 的映像。
    2. 在计算机上手动安装 VDA 并在设置期间选择 Elastic Layering 组件。

安装 Cloudpaging Player

  1. 在 VDA 上打开管理员命令提示符。

  2. 转到包含 Cloudpaging Player 安装程序的文件夹。

  3. 运行以下命令以静默安装播放器并配置 SaaS 控制台 URL。根据需要替换占位符值:

    cloudpaging-player-setup-x64-release.exe /S /v"/qn ADDLOCAL=ALL REG_BASTOKENPATHORURL=https://your-tenant-url/api/token"
    <!--NeedCopy-->
    
  4. (可选)安装后通过检查以下注册表值来验证配置:

    • 路径: HKEY_LOCAL_MACHINE\SOFTWARE\Numecent\StreamingCore\Settings\Launcher
    • 名称: BaseTokenPathOrURL
    • 数据: 该值必须与您在安装期间指定的 URL 匹配。

交付打包的应用程序

完成安装先决条件后,执行以下操作以向用户交付打包的应用程序:

  1. 将应用程序软件包存储在网络共享上
  2. 将应用程序软件包上传到您的环境
  3. 将应用程序添加到交付组
  4. 要启用相互依赖的 App-V 软件包的自动交付,请创建隔离组

将应用程序软件包存储在网络共享上

设置基础结构后,生成应用程序软件包并将其存储在网络位置,例如 UNC 或 SMB 网络共享,或 Azure 文件共享上。

详细步骤如下:

  1. 生成应用程序软件包。有关详细信息,请参阅 Microsoft 文档:创建和管理 App-V 虚拟化应用程序

  2. 将应用程序软件包存储在网络位置:

    • 对于 App-V 单管理员:将软件包和相应的动态配置文件 (App-V) 存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

    • 对于 App-V 双管理员:从 UNC 路径将软件包发布到 App-V 管理服务器。(不支持从 HTTP URL 发布。)

    • 对于 MSIX 或 MSIX 应用附加:将软件包存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

    • 对于 FlexApp:将软件包存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

    • 对于 Elastic App:将软件包存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

  3. 确保 VDA 对软件包存储路径具有读取权限:

    • 如果将软件包存储在 AD 域中的 UNC 或 SMB 网络共享上,请授予 VDA 计算机对存储路径的读取权限。为此,您可以显式授予计算机的 AD 帐户对共享的读取权限,或将该帐户包含在具有该权限的 AD 组中。

    • 如果将软件包存储在 Azure 文件共享上,请首先授予用户帐户对 Azure 中存储路径的读取权限。接下来,配置在 VDA 计算机上运行的 ctxAppVService 以使用该用户帐户访问软件包存储路径。有关详细步骤,请参阅更改用户登录帐户

更改用户登录帐户

在以下两种情况下更改用户登录帐户:

  • 要使用链接的 AD 帐户访问 Azure 文件共享上的软件包:
    • 连接实体必须是用户帐户,而不是计算机帐户,因为 Microsoft Entra ID 不会向文件共享上的计算机帐户授予读取权限。
  • 如果 MSIX 和 MSIX AppAttach 软件包包含服务:
    • 必须使用在本地计算机上具有管理权限的用户帐户发布软件包,然后才能将其发布给任何非管理用户。这对于安装打包服务是必需的,并且软件包只能发布给用户,而不能发布给计算机,这使得默认的 LocalService 帐户不适用。

VDA 调用 ctxAppVService 来访问软件包存储路径并执行需要管理权限的操作。默认情况下,ctxAppVService 在计算机的 LocalService 帐户上下文中运行,该帐户使用计算机的身份向 AD 进行身份验证,不适用于上述场景。

在任何一种情况下,都必须重新配置服务以使用具有本地管理权限并已授予对软件包存储位置(无论是 SMB 共享还是 Azure 文件共享)读取访问权限的 AD 用户帐户,具体操作如下:

  1. 启动服务,右键单击 ctxAppVService,然后选择属性
  2. 登录选项卡上,选择此帐户
    1. 输入一个具有本地管理权限和对软件包存储路径的读取权限的用户帐户
    2. 两次输入用户密码。
  3. 单击确定

将应用程序软件包上传到您的环境

根据需要将应用程序软件包存储到网络位置后,将其上传到您的环境以进行交付。根据需要使用以下任一方法:

准备工作

Citrix Virtual Apps and Desktops 使用 VDA 计算机设置与网络位置的连接以进行软件包发现。因此,请事先创建交付组,并确保组中至少有一个 VDA 满足以下要求:

  • VDA 版本:
    • 要发现 App-V 软件包:2203 或更高版本
    • 要发现 MSIX 和 MSIX 应用附加软件包:2209 或更高版本
    • 要发现 FlexApp 软件包:2311 或更高版本以及 FlexApp Agent 软件
    • 要发现 ElasticApp 软件包:2511 或更高版本以及启用 App Layering 的映像
    • 要发现 Cloudpaging 软件包:2511 或更高版本以及 Cloudpaging Player 软件
  • 应用程序软件包交付组件:已安装
  • 软件包位置权限:读取(有关详细信息,请参阅将应用程序软件包存储在网络共享上。)
  • 电源:开
  • 状态:已注册
批量上传应用程序软件包

将网络位置中的软件包上传到您的环境。在上传之前,请确保已准备好以下各项:

要批量上传软件包,请按照以下步骤操作:

  1. 在左侧窗格中,选择应用程序软件包
  2. 软件包发现选项卡上,单击创建发现配置文件按钮。此时将显示创建发现配置文件页面。
  3. 名称字段中,输入配置文件的描述性名称。
  4. 交付组字段中,单击选择交付组。接下来,选择一个满足准备工作中指定要求的交付组,然后单击确定
  5. 位置类型字段中,根据软件包的存储位置选择 Microsoft App-V 服务器网络共享Numecent Cloudpager,然后完成相应的设置:
    • 如果选择了 Microsoft App-V 服务器,请输入以下信息:
      • 管理服务器的 URL。示例:http://appv-server.example.com
      • 管理服务器管理员的登录凭据。
      • 发布服务器的 URL 和端口号。示例:http://appv-server.example.com:3330
    • 如果选择了网络共享,请指定以下信息:
      • 输入网络共享的 UNC 路径(示例:\\Package-Server\apps\)。对于 Elastic App 软件包,请输入 ELM 中系统的网络文件共享 SMB 路径中的 UNC 路径。
      • 选择要上传的软件包类型。选项包括 App-VMSIXMSIX 应用附加FlexAppElastic App
      • 指定是否搜索子文件夹以查找软件包。

        注意:

        如果在包含 cim 映像的文件夹结构中搜索 MSIX 应用附加软件包,请确保选择搜索子文件夹。否则,磁盘将无法正确发现。

    • 如果选择了 Numecent Cloudpager,请输入以下信息:

      • Cloudpager Console URL。示例:https://cloudpagerconsole.my.org

      • PowerShell API 密钥。

      • AppLauncher MSID。

  6. 单击“创建发现配置文件”。

    创建发现配置文件”页面关闭,新添加的配置文件将显示在配置文件列表中。Citrix Virtual Apps and Desktops 使用交付组中的 VDA 将软件包上传到您的环境。上传完成后,“状态”字段将显示“导入成功”。相应的软件包将显示在“软件包”选项卡上。

    注意:

    要检查源位置中的软件包更新并将其导入到您的环境,请在配置文件列表中选择该位置,然后单击“检查更新”。

逐个上传应用程序软件包

将应用程序软件包从网络共享上传到您的环境。上传之前,请确保已准备好以下各项:

  • 满足准备工作中所述要求的交付组
  • 网络位置路径。

要将软件包上传到您的环境,请执行以下步骤:

  1. 在左侧窗格中,选择“应用程序软件包”。
  2. 在“软件包”选项卡上,单击“添加软件包”按钮。“添加软件包”页面随即显示。
  3. 在“交付组”字段中,单击“选择交付组”。接下来,选择一个满足准备工作中所述要求的交付组,然后单击“确定”。
  4. 在“软件包完整路径”字段中,根据需要输入路径:
    • 要一次上传多个软件包,请输入它们的完整路径,并用分号 (;) 分隔。示例:\\Package-Server\apps\office365.appv;\\Package-Server\apps\skype.msix;\\Package-Server\apps\slack.vhd
    • 要上传网络共享上存在的所有软件包,请输入存储路径。示例:\package-Server\apps\
  5. 单击“添加软件包”。

    应用程序软件包将显示在“软件包”选项卡上。

将应用程序添加到交付组

应用程序软件包完全上传到您的环境后,根据需要将其应用程序添加到一个或多个交付组。这样,与这些交付组关联的用户就可以访问这些应用程序。

注意:

  • 您可以通过交付组将打包的应用程序交付给单会话 VDA 和多会话 VDA。
  • 默认情况下,最终用户可以访问分配给与其单会话(或称为桌面)VDA 关联的交付组的所有打包应用程序。要限制打包应用程序在桌面 VDA 上对特定用户或组的可见性,请转至“应用程序”节点,选择该应用程序,然后选择“编辑应用程序属性 > 限制可见性”进行更改。请参阅限制应用程序的可见性

要将软件包中的一个或多个应用程序添加到多个交付组,请执行以下步骤:

  1. 在左侧窗格中,选择“应用程序软件包”。
  2. 在“软件包”选项卡上,根据需要选择一个软件包。
  3. 在操作栏中,单击“添加交付组”。“将应用程序分配给交付组”页面随即显示。
  4. 根据需要选择软件包中的一个或多个应用程序,然后单击“下一步”。
  5. 在交付组列表中,选择要向其分配应用程序的组,然后单击“下一步”。

    注意:

    • 如果您选择了 MSIX 或 MSIX app attach 软件包,则列表中仅显示 VDA 版本为 2106 或更高版本的交付组。
    • 如果您选择了 FlexApp 软件包,则列表中仅显示 VDA 版本为 2402 或更高版本的交付组。
    • 如果您选择了 Elastic App 软件包,则列表中仅显示 VDA 版本为 2511 或更高版本的交付组。
    • 如果您选择了 Cloudpaging 软件包,则列表中仅显示 VDA 版本为 2511 或更高版本的交付组。
  6. 单击“完成”。

要将不同软件包中的应用程序添加到多个交付组,请执行以下步骤:

  1. 在左侧窗格中,选择“应用程序软件包”。
  2. 在“应用程序”选项卡上,选择“添加应用程序”。
  3. 在“”页面上,根据需要选择一个或多个交付组。
  4. 在“应用程序”页面上,按如下方式选择一个或多个应用程序软件包:
    1. 单击“添加”,然后选择“应用程序软件包”。
    2. 选择所需的软件包配置文件类型(例如,App-V 单管理员)。此类型的所有软件包都将显示。
    3. 根据需要选择一个或多个软件包。
    4. 单击“确定”,然后单击“下一步”。
    5. 要添加不同软件包类型的更多应用程序,请重复步骤 a 到 d。
  5. 单击“完成”。

您还可以在以下情况下将打包的应用程序添加到交付组:

(可选)为 App-V 软件包创建隔离组

您可以创建隔离组,以实现相互依赖的 App-V 软件包的自动交付。

注意:

App-V 单管理员方法支持隔离组。如果您使用的是 App-V 双管理员方法,则可以通过在 Microsoft App-V 基础结构中创建连接组来实现相同的目标。有关详细信息,请参阅此 Microsoft 文档文章:关于连接组文件

关于隔离组

隔离组是相互依赖的应用程序包的集合,这些包必须在同一个 Windows 沙盒中运行以创建虚拟环境。Citrix App-V 隔离组与 App-V 连接组相似但不完全相同。隔离组包含两种类型的包:

  • 显式应用程序包:具有特定许可要求的应用程序。您可以通过将这些应用程序添加到交付组来限制其对特定范围的用户可用。
  • 自动应用程序包:无论是否已添加到交付组,始终对所有用户可用的应用程序。

例如,应用程序 app-a 需要 JRE 1.7 才能运行。您可以创建一个隔离组,其中包含 app-a(标记为 显式)和 JRE 1.7(标记为 自动)。接下来,将 app-a 的 App-V 包添加到一个或多个交付组。当用户启动 app-a 时,JRE 1.7 会随之自动部署。

当用户在隔离组中启动标记为 显式 的 App-V 应用程序时,Citrix Virtual Apps and Desktops 会检查用户对交付组中该应用程序的访问权限。如果用户有权访问该应用程序,则同一隔离组中的任何 自动 应用程序包都将对用户可用。

您无需将 自动 包添加到任何交付组。如果隔离组中还有另一个 显式 应用程序包,则只有当该包位于同一交付组中时,它才对用户可用。

创建 App-V 隔离组

创建一个隔离组并向其中添加相互依赖的应用程序包。详细步骤如下:

  1. 在“隔离组”选项卡上,单击“添加隔离组”。
  2. 输入隔离组的名称和描述。环境中的所有 App-V 单管理员包都将显示在“可用包”列表中。
  3. 从“可用包”列表中,根据需要选择一个应用程序,然后单击右箭头。所选应用程序将显示在“隔离组中的包”列表中。
  4. 在“部署”字段中,为应用程序选择“显式”或“自动”。
  5. 重复步骤 2–3 以添加更多包。
  6. 要调整列表中包的顺序,请单击向上或向下箭头。
  7. 单击“保存”。

注意:

隔离组配置会导致在 VDA 上创建 App-V 连接组。部署场景可能变得复杂,并且 App-V 客户端一次只支持一个活动连接组中的包。我们建议您避免将同一个包添加到已添加到同一交付组的两个不同隔离组中。

最佳实践

  • 要部署 App-V 包,请使用 PowerShell 命令 Enable-AppV 在 VDA 上启用 App-V 子系统。
  • 要部署 MSIX(和 AppAttach)包,VDA 必须信任用于签署这些包的证书。
  • 在 Windows Server 2019 上,启用旁加载以部署 MSIX 包。Windows 10、11、Windows Server 2022 和 2025 不需要旁加载。
  • App Attach 在 Windows Server 2019 上根本没有实现,并且目前不受 Microsoft(或 Citrix)在 Windows Server 2022 或 2025 上的支持。

高级

以下高级主题提供了额外的配置选项和控制,用于在 Citrix Virtual Apps and Desktops 中微调打包应用程序的发现、更新和交付方式,超越了基本的应用程序包工作流。

自动化打包应用程序发布

您可以使用 PowerShell 命令自动化打包应用程序发布:

在 Delivery Controller™ 上,运行以下 PowerShell 命令:

  1. 要加载包发现模块中存在的命令:

    Import-Module "D:\Support\Tools\Scripts\Citrix.Cloud.AppLibrary.Admin.v1.psm1"
    <!--NeedCopy-->
    

    注意:

    包发现模块的版本可以在 Citrix Virtual Apps and Desktops ISO 上找到,路径如步骤 1 中所述。

  2. 包发现模块必须来自支持您正在发布的包类型的 Citrix Virtual Apps and Desktops 版本的 ISO,即 FlexAppOne 应用程序需要 2311 或更高版本。我们建议使用最新版本。
  3. 要检索相关的交付组 ID 和打包应用程序 ID:

    Get-BrokerDesktopGroup | Format-Table Uid, Name 
    Get-AppLibAppVApplication | Format-Table Uid, Name
    <!--NeedCopy-->
    
  4. 要发布包并创建相应的 BrokerMachineConfigurations:

    Publish-PackagedApplication -AppLibararyApplicationUid <AppLibararyApplication.Uid > -DesktopGroupUid <DesktopGroup.Uid>
    <!--NeedCopy-->
    
  5. 要同步 Broker 配置,这些配置稍后会发送到 VDA 上的 Broker 代理:

    Update-DesktopGroupMachineConfigurations -DesktopGroupUid <DesktopGroup.Uid>
    <!--NeedCopy-->
    

    注意:

    请务必在通过 PowerShell 命令行发布或删除交付组中的打包应用程序后,运行 PowerShell 命令 Update-DesktopGroupMachineConfigurations。否则,有关已发布应用程序的信息无法正确发送到 VDA,并且启动会失败。

限制应用程序的可见性

在 Citrix Virtual Apps and Desktops 环境中,当将包中的应用程序发布到桌面时,系统会遵循这些应用程序的 Active Directory (AD) 用户和组可见性设置。但是,即使某个用户只能看到包中的一个应用程序,也必须将整个包部署到虚拟桌面(或无缝应用程序)会话,因为单个包组件无法在 VDA 上细分。此外,在 VDA 2503 版本之前,在初始发布后降低应用程序可见性的更改不会在后续桌面启动时清理以前发布的包。此外,其他可见性层(例如桌面与工作区可见性)在这些 AD 可见性分配之上运行。

您可以控制打包应用程序是必须显示在 Workspace 中,还是部署到用户的 VDI 桌面会话。打包应用程序发布后,您可以使用 PowerShell 命令 Set-BrokerApplication -Name "MyApp" -PackagedApplicationVisibility "Workspace|Desktop|WorkspaceAndDesktop" 更新 BrokerApplication 上的 PackagedApplicationVisibility 属性。

PackagedApplicationVisibility 的默认值为 WorkspaceAndDesktop

Workspace 值:应用程序仅显示在 Workspace 应用程序中,并可用于无缝应用程序启动,但应用程序不会自动发布到用户启动的任何桌面会话。

Desktop 值:从 Workspace 应用程序中隐藏应用程序图标,使其无法用于无缝应用程序启动,但如果用户通过其 AD 组设置也具有访问权限,则该应用程序仍可部署到用户的桌面会话。

注意:

发布到单会话静态桌面的打包应用程序永远不会在 Workspace 应用程序中可用,无论此设置中配置的值如何。

从 App-V 完整基础结构迁移到单一管理员工作流

Microsoft App-V 完整基础结构(双管理员)即将终止服务。要继续交付 App-V 包和其他受支持的容器格式,请迁移到 Citrix 单一管理员模型。

单一管理员模型消除了对 App-V 管理和发布服务器的依赖,并将包管理集中到 Studio 中。

单一管理员模型的优势

转向单一管理员工作流可简化您的体系结构并简化包管理。

简化的体系结构

在单一管理员模型中,VDA 直接从文件共享中检索包。Citrix 管理元数据、发布和隔离逻辑。

功能 完整基础结构(双管理员) 单一管理员(Citrix 管理)
管理 App-V 管理控制台 Citrix Studio 或 Web Studio
数据库 必需 (SQL Server) 无(元数据存储在 Citrix 站点数据库中)
发布 App-V 发布服务器 Citrix VDA (ctxAppVService)
包源 UNC 共享(与管理服务器同步) UNC 共享、SMB 共享或 Azure 文件
逻辑 连接组 Citrix 隔离组

战略优势

通过转向单一管理员,您还可以消除同步延迟

  • 在双管理员模型中,您必须同步 App-V 管理服务器,然后同步 Studio。

  • 在单一管理员模型中,当您更新文件共享上的包并在 Studio 中选择刷新时,更新后的包将在下次用户登录时可用。

迁移工作流

请按照以下步骤操作,将现有 App-V 完整基础结构迁移到 Citrix 单一管理员工作流:

  1. 步骤 1:准备目标环境
  2. 步骤 2:将包导入 Citrix 库

步骤 1:准备目标环境

在导入包之前,请确保您的基础结构和 VDA 已准备好支持单一管理员模型。

  1. 共享存储库

    1. 确定托管您的 .appv 包的 UNC 共享。

    2. 确保 VDA 计算机帐户(例如,域计算机)对共享和 NTFS 权限都具有 读取 权限。

  2. VDA

    确保所有 VDA 都已安装 应用程序包交付组件。要在安装后添加此组件:

    1. 运行 VDA 安装程序。
    2. 程序和功能 中选择 更改
    3. 添加 应用程序包交付组件
  3. XML 配置文件

    _DeploymentConfig.xml_UserConfig.xml 文件移动到与相应的 .appv 文件所在的同一文件夹中。

    在单一管理员模型中,VDA 从文件共享上的包文件夹读取配置文件,而不是从中央 App-V 数据库读取。

步骤 2:将包导入 Citrix 库

准备好环境后,将现有 App-V 包导入 Citrix 应用程序库。

  1. 在 Citrix Studio 中,转到 配置 > 应用程序包
  2. 如果您正在完全迁移,请删除与 App-V 管理服务器的任何现有连接。
  3. 选择 添加包 并将其指向包的 UNC 路径。
  4. Citrix 会扫描该文件夹,并将包名称、版本和应用程序 ID 导入 Citrix 应用程序库。

导入后,您可以根据需要将应用程序分配给交付组。

注意:

vPrefer 策略(可选):如果您希望应用程序在本地 VDA 上启动而不是重定向到远程服务器,请在 VDA 上启用 vPrefer GPO。

排除 App-V 应用程序故障(单一管理员模型)

如果 App-V 包(在单一管理员模型中)无法启动或未在用户会话中显示,请使用以下指南来识别和解决常见问题。

问题 描述 解决方案
包发现和“无法编目”错误


在 Studio 中添加包时,出现错误,指示无法访问文件或元数据无效。


  1. 验证权限。
    确保 Delivery Controller 计算机帐户(例如,DOMAIN\DDC01$)对托管包的 UNC 路径的共享和 NTFS 级别都具有 读取 权限。
  2. 检查 XML 完整性。
    确保 .appv 文件和 _DeploymentConfig.xml 文件具有相同的文件名前缀并位于同一文件夹中。
应用程序无法启动
(错误代码:0x80070005 或 0x80040154)




用户单击应用程序图标后,出现 Citrix 启动画面,但应用程序未打开。





  1. 验证 VDA 组件。
    确保 VDA 上安装了 应用程序包交付组件。确认存在以下文件:C:\Program Files\Citrix\AppV\ctxAppVService.exe
  2. 检查 VDA 权限。
    由于 VDA 从文件共享中拉取包,因此 VDA 计算机帐户(例如,DOMAIN\VDA-HR01$)必须对 UNC 路径具有 读取 权限。
  3. 验证 App-V 客户端配置。
    • 在 VDA 上运行以下 PowerShell 命令:Get-AppvClientConfiguration
    • 如果您的包需要脚本,请确保 EnablePackageScripts 设置为 $True
隔离组冲突

插件(例如 Excel 加载项)无法看到其父应用程序。

  1. 在 Studio 中,转到 应用程序包 > 隔离组
  2. 确保两个包都已添加到同一隔离组。
    在单一管理员模型中,VDA 上的 App-V 客户端根据 Delivery Controller 提供的配置管理这些应用程序的虚拟连接。
首次启动缓慢(缓冲)


大型 App-V 包(例如 AutoCAD 或 ArcGIS)的首次启动需要几分钟。


  1. 在 VDA 上,检查以下注册表:
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AppV\Client\Streaming
  2. Autoload 设置为 2(自动加载所有以前使用的包)以提高后续启动性能。
  3. 检查网络性能。确保网络共享上的 SMB 签名或防病毒扫描不会限制传输速度。

有用的 PowerShell 命令(在 VDA 上运行)

要验证 Citrix 是否已成功将包交付到 VDA,请在 PowerShell 窗口中运行以下命令:

命令 用途
Get-AppvClientPackage 显示当前缓存或发布到 VDA 的所有 App-V 包。
Get-CtxAppvPackage 显示由 Citrix 代理管理的包。
Start-Service ctxAppVService 重新启动 Citrix App-V 编排服务。