Citrix Virtual Apps and Desktops

应用包

应用包是 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 桌面客户端和远程桌面服务客户端。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.  用户 SID
1.  用户名
1.  AD 组 SID (首先找到的获胜)
1.  AD 组名称 (首先找到的获胜)
1.  默认

例如:

```
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”,然后选择“更改”。
        1. 在出现的向导中,继续转到“附加组件”页面,然后启用“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 上与 App Packages Delivery Component 一起安装 FlexApp One Agent
    • 对于 Elastic App 应用程序,请在 VDA 上与 App Packages Delivery Component 一起安装启用 App Layering 的映像
    • 对于 Cloudpaging 应用程序,请在 VDA 上与 App Packages Delivery Component 一起安装 Cloudpaging Player

安装 FlexApp One Agent

    1. 在 VDA 上启动管理员命令提示符。
    1. 找到任何 FlexApp One 包的网络路径。
  1. 输入以下命令:

    \\path\to\any\FlexAppOnePackage.exe --install
    <!--NeedCopy-->
    
    -  1.  接受出现的任何提示。
    
    -  #### 安装启用 App Layering 的映像
    
    -  1.  设置应用程序分层。
    -  请按照 Citrix App Layering 文档中的说明进行操作。该过程包括:
    
    1. 设置 Enterprise Layer Manager (ELM)。
    2. 导入黄金 OS 映像。
    3. 创建平台层。
        1. 创建应用程序层。
        1. 在 ELM 中,为要交付的每个应用程序层选择“启用此应用程序层以用于 Studio 应用程序包”复选框。
        1. 在 VDA 计算机上安装包含 Elastic Layering 组件的映像。您可以使用以下任一方法:
    4. 从 ELM 部署映像并启用弹性分层。
    5. 在计算机上手动安装 VDA,并在安装过程中选择弹性分层组件。

安装 Cloudpaging Player

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

      1. 转到包含 Cloudpaging Player 安装程序的文件夹。
  2. 运行以下命令以静默方式安装 Player 并配置 SaaS 控制台 URL。根据需要替换占位符值:

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

    -  **路径:** `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 app attach:将包存储在 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 app attach 包:2209 或更高版本
    • 要发现 FlexApp 包:2311 或更高版本以及 FlexApp Agent 软件
    • 要发现 ElasticApp 包:2511 或更高版本以及启用 App Layering 的映像
    • 要发现 Cloudpaging 包:2511 或更高版本以及 Cloudpaging Player 软件
  • 应用程序包交付组件:已安装
  • 包位置权限:读取(有关详细信息,请参阅在网络共享上存储应用程序包。)
  • 电源:开
  • 状态:已注册
批量上传应用程序包

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

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

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

        注意:

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

    • 如果选择了 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. 在左窗格中,选择 App Packages
  2. Packages 选项卡上,根据需要选择一个程序包。
  3. 在操作栏中,单击 Add Delivery Groups。“将应用程序分配给交付组”页面随即显示。
  4. 根据需要选择程序包中的一个或多个应用程序,然后单击 Next
  5. 在交付组列表中,选择要向其分配应用程序的组,然后单击 Next

    注意:

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

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

  1. 在左窗格中,选择 App Packages
  2. Applications 选项卡上,选择 Add Applications
  3. Groups 页面上,根据需要选择一个或多个交付组。
  4. Applications 页面上,按如下方式选择一个或多个应用程序包:
    1. 单击 Add,然后选择 Application packages
    2. 选择所需的程序包配置文件类型(例如,App-V Single Admin)。此类型的所有程序包都将显示。
    3. 根据需要选择一个或多个程序包。
    4. 单击 OK,然后单击 Next
    5. 要添加不同程序包类型的更多应用程序,请重复步骤 a 到 d。
  5. 单击 Finish

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

(可选)为 App-V 程序包创建隔离组

您可以创建隔离组以启用相互依赖的 App-V 程序包的自动交付。

注意:

App-V Single Admin 方法支持隔离组。如果您使用的是 App-V Dual Admin 方法,则可以通过在 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. Isolation Groups 选项卡上,单击 Add Isolation Group
  2. 输入隔离组的名称和描述。环境中所有 App-V Single Admin 程序包都将显示在 Available Packages 列表中。
  3. Available Packages 列表中,根据需要选择一个应用程序,然后单击右箭头。所选应用程序将显示在 Packages in Isolation Group 列表中。
  4. Deployment 字段中,为应用程序选择 ExplicitAutomatic
  5. 重复步骤 2-3 以添加更多程序包。
  6. 要调整列表中程序包的顺序,请单击向上或向下箭头。
  7. 单击 Save

注意:

隔离组配置会导致在 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. 要加载 Package Discovery Module 中存在的命令:

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

    注意:

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

  2. 包发现模块必须来自支持您要发布的包类型(即 FlexAppOne Applications 需要 2311 或更高版本)的 Citrix Virtual Apps and Desktops 版本的 ISO。我们建议使用最新版本。
  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" 更新 BrokerApplictaion 上的 PackagedApplicationVisibility 属性。

PackagedApplicationVisibility 的默认值为 WorkspaceAndDesktop

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

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

注意:

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

从 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 程序包(在单管理员模型中)无法启动或未显示在用户会话中,请使用以下指南来识别和解决常见问题。

问题 描述 解决方案
程序包发现和“Failed to catalog”错误


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


  1. 验证权限。
    确保交付控制器计算机帐户(例如,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 客户端根据交付控制器提供的配置管理这些应用程序的虚拟连接。
初始启动缓慢(缓冲)


大型 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 编排服务。