应用程序虚拟化

Last published : Nov 13, 2026

将 App-V 与 Citrix Virtual Apps and Desktops™ 结合使用

Microsoft Application Virtualization (App-V) 允许您将应用程序作为服务进行部署、更新和支持。用户无需在其设备上安装应用程序即可访问。App-V 和 Microsoft User State Virtualization (USV) 提供对应用程序和数据的访问,无论位置和互联网连接如何。 下表列出了支持的版本。
应用程序虚拟化 Citrix Virtual Apps and Desktops 交付控制器 Citrix 虚拟应用和桌面 VDA
5.0 和 5.0 SP1 XenDesktop 7 到当前版本,XenApp 7.5 到当前版本 7.0 到当前版本
5.0 SP2 XenDesktop 7 到当前版本,XenApp 7.5 到当前版本 7.1 到当前版本
5.0 SP3 和 5.1 XenDesktop 7.6 到当前版本,XenApp 7.6 到当前版本 7.6.300 到当前版本
Windows 服务器 2016 中的 App-V XenDesktop 7.12 到当前版本,XenApp 7.12 到当前版本 7.12 到当前版本
App-V 客户端不支持对应用程序进行离线访问。App-V 集成支持包括将 SMB 共享用于应用程序。不支持 HTTP 协议。 如果您不熟悉 App-V,请参阅 Microsoft 文档。以下是本文中提到的 App-V 组件概述:
  • 管理服务器。提供一个集中式控制台来管理 App-V 基础结构,并将虚拟应用程序交付给 App-V 桌面客户端和远程桌面服务客户端。App-V 管理服务器进行身份验证、请求并提供管理员所需的安全、计量、监视和数据收集。该服务器使用 Active Directory 和支持工具来管理用户和应用程序。
  • 发布服务器。为 App-V 客户端提供面向特定用户的应用程序,并托管用于流式传输的虚拟应用程序包。它从管理服务器获取软件包。
  • 客户端。检索虚拟应用程序,在客户端上发布应用程序,并在 Windows 设备上自动设置和管理运行时虚拟环境。您可以在 VDA 上安装 App-V 客户端,它会在每个用户配置文件中存储用户特定的虚拟应用程序设置,例如注册表和文件更改。
应用程序可无缝使用,无需任何预配置或操作系统设置更改。您可以从服务器操作系统和桌面操作系统交付组启动 App-V 应用程序:
  • 通过 Citrix Workspace™ 应用
  • 通过 App-V 客户端和 Citrix Workspace app
  • 多个用户在多个设备上同时使用
  • 通过 Citrix StoreFront™
修改后的 App-V 应用程序属性在应用程序启动时实施。例如,对于显示名称已修改或图标已自定义的应用程序,当用户启动应用程序时,修改会显示出来。保存在动态配置文件中的应用程序自定义项也会在应用程序启动时应用。

管理方法

您可以使用 App-V sequencer 创建的 App-V 软件包和动态配置文件,然后将其放置在 App-V 服务器或网络共享上。
  • App-V 服务器: 从 App-V 服务器上的程序包使用应用程序,需要 Studio 与 App-V 服务器之间持续通信,以进行发现、配置和下载到 VDA。这会产生硬件、基础架构和管理开销。Studio 和 App-V 服务器必须保持同步,尤其是对于用户权限。
    这称为双管理员管理方法,因为 App-V 程序包和应用程序访问需要 Studio 和 App-V 服务器控制台。此方法最适用于紧密耦合的 App-V 和 Citrix 部署。在此方法中,管理服务器处理动态配置文件。当您使用双管理员管理方法时,Citrix App-V 组件会管理应用程序启动所需的相应发布服务器的注册。这可确保发布服务器在适当时间与用户同步。发布服务器使用其配置的设置来维护程序包生命周期的其他方面(例如登录时刷新和连接组)。
  • 网络共享: 放置在网络共享上的程序包和 XML 部署配置文件消除了 Studio 对 App-V 服务器和数据库基础架构的依赖,从而降低了开销。(您必须在每个 VDA 上安装 Microsoft App-V 客户端。)
    这称为单管理员管理方法,因为 App-V 程序包和应用程序的使用只需要 Studio 控制台。您可以浏览到网络共享,并将该位置的一个或多个 App-V 程序包添加到站点级应用程序库 。在此方法中,Citrix App-V 组件在应用程序启动时处理部署配置文件。(不支持用户配置文件。)当您使用单管理员管理方法时,Citrix App-V 组件会管理主机上程序包生命周期的所有方面。程序包在代理启动时或检测到配置更改时(也可以在会话启动时)添加到计算机。当从 Citrix Workspace 应用程序收到启动请求时,程序包会首先按需“即时”发布给单个用户。
    单管理员还管理连接组的生命周期,这些连接组需要满足 Studio 中制定的隔离组配置定义。
    应用程序库是 Citrix 的一个术语,指用于存储 App-V 程序包信息的缓存存储库。应用程序库还存储有关其他 Citrix 应用程序交付技术的信息。
在这两种管理方法中,如果 VDA 配置为丢弃用户数据,则必须在下次会话启动时重新进行发布(或同步)。
您可以同时使用一种或两种管理方法。换句话说,当您将应用程序添加到交付组时,这些应用程序可以来自 App-V 服务器或网络共享上的 App-V 包。
注意:
如果您同时使用两种管理方法,并且 App-V 包在两个位置都有动态配置文件,则将使用 App-V 服务器中的文件(双重管理)。
在 Studio 导航窗格中选择 Configuration > App-V Publishing 时,显示屏会显示 App-V 程序包名称和源。源列指示程序包是位于 App-V 服务器上还是缓存在应用程序库中。选择程序包时,详细信息窗格会列出程序包中的应用程序和快捷方式。

动态配置文件

概述

App-V 程序包可以使用动态配置文件进行自定义,这些文件应用于程序包后,可用于更改其特性。例如,您可以使用它们来定义额外的应用程序快捷方式和行为。Citrix App-V 支持这两种类型的动态配置文件。文件设置在应用程序启动时应用:
  • 部署配置文件为所有用户提供计算机范围的配置。这些文件应命名为 \<packageFileName>_DeploymentConfig.xml,并位于其所应用的 App-V 程序包所在的文件夹中。受单管理员和双管理员管理支持。
  • 用户配置文件提供用户特定的配置,支持对程序包进行按用户自定义。单管理员支持以下格式命名的用户配置文件:\<packageFileName>_UserConfig.xml,并位于其所应用的 App-V 程序包所在的文件夹中。
当特定程序包存在多个用户配置文件时,它们按以下优先级应用:
  1. 用户 SID
  2. 用户名
  3. AD 组 SID(第一个找到的获胜)
  4. AD 组名称(第一个找到的获胜)
  5. 默认值

例如

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
注意:
文件名的用户特定部分也可以选择性地出现在末尾(例如 MyAppVPackage_UserConfig_joeblogs.xml)。

动态配置文件位置

在单管理员管理中,Citrix App-V 组件仅处理与其 App-V 程序包位于同一文件夹中的动态配置文件。当程序包中的应用程序启动时,对相应动态配置文件的任何更改都将重新应用。如果您的动态配置文件与其程序包位于不同的位置,请使用映射文件将程序包映射到其部署配置文件。

创建映射文件

  1. 打开一个新文本文件。
  2. 对于每个动态配置文件,添加一行,使用格式 \&lt;PackageGuid> : path 指定包的路径。
    例如:
    F1f4fd78ef044176aad9082073a0c780 : c:\widows\file\packagedeploy.xml
  3. 将文件保存为 ctxAppVDynamicConfigurations.cfg,与包位于同一文件夹中。每次启动包中的应用程序时,都会在与 App-V 包相同的 UNC 共享上向上递归搜索整个目录层次结构以查找此文件。
注意:
当存在打开了包中应用程序的用户会话时,您无法应用对动态部署配置的更改。如果其他用户(但不是当前用户)打开了包中的应用程序,则可以应用对动态用户配置文件的更改。

配置 IIS 以使用动态配置文件

VDA 上的 Citrix App-V 组件可以利用放置在包旁边的 App-V 部署配置文件和用户配置文件,遵循与 UNC 托管包相同的规则。 为此,VDA 组件需要权限来浏览 IIS 目录结构以确定要使用的文件。与 UNC 托管包不同,VDA 必须首先将配置文件从服务器下载到主机上的临时位置,然后才能在发布中使用它们。这是一个可选功能,如果未启用目录浏览,则动态配置文件将被忽略。
执行以下步骤为您的站点启用目录浏览:
  1. 在 IIS 管理器控制台中,选择网站节点,然后双击中央窗格中的 目录浏览。
  2. 单击右侧窗格中的 启用,然后选择 时间、大小、扩展名 和 日期。(不要选择长日期。)这允许 VDA 上的 Citrix App-V 组件判断是否已应用最新版本的配置文件,或者是否需要更新。

隔离组

当您使用 App-V 单一管理员方法时,创建隔离组允许您指定必须在沙盒中运行的相互依赖的应用程序组。此功能与 App-V 连接组类似,但并不完全相同。App-V 管理服务器使用强制和可选包术语,而 Citrix 则对包部署选项使用自动和显式。
  • 当用户启动 App-V 应用程序(主应用程序)时,系统会搜索隔离组中标记为自动包含的其他应用程序包。这些包会自动下载并包含在隔离组中。您无需将它们添加到包含主应用程序的交付组中。
  • 隔离组中标记为显式包含的应用程序包仅在您已将该应用程序显式添加到包含主应用程序的同一交付组时才会被下载。
这允许您创建隔离组,其中包含可供所有用户全局使用的自动包含应用程序的混合。此外,该组还可以包含一组插件和其他应用程序(可能具有特定的许可限制),您可以将其限制为特定用户集(通过交付组识别),而无需创建更多隔离组。
例如,应用程序“app-a”需要 JRE 1.7 才能运行。您可以创建一个隔离组,其中包含 app-a(具有显式部署类型)和 JRE 1.7(具有自动部署类型)。然后,将这些 App-V 软件包添加到一个或多个交付组。当用户启动 app-a 时,JRE 1.7 会随之自动部署。
您可以将一个应用程序添加到多个 App-V 隔离组。但是,当用户启动该应用程序时,始终使用添加该应用程序的第一个隔离组。您无法对包含该应用程序的其他隔离组进行排序或设置优先级。

负载平衡 App-V 服务器

如果使用双管理员管理方法,则支持使用 DNS 循环 (Round-Robin) 对管理服务器和发布服务器进行负载平衡。不支持在 Netscaler、F5(或类似)虚拟 IP 后面对管理服务器进行负载平衡,因为 Studio 需要通过远程 PowerShell 与管理服务器通信。有关详细信息,请参阅这篇 Citrix 博客文章。

配置 IIS 以托管和流式传输 App-V 软件包

要使 IIS 服务器能够托管和流式传输 App-V 软件包,请执行以下步骤:
  1. 打开 IIS 管理器控制台。有关说明,请参阅 <https://docs.microsoft.com/zh-cn/previous-versions/iis/6.0-sdk/ms525920(v%3Dvs.90)>。
  2. 右键单击要使用的网站实例,然后选择 Add Virtual directory(添加虚拟目录)。
  3. 键入别名以及软件包在网络上物理存储的路径。
  4. 双击中央窗格中的 MIME Types(MIME 类型),然后右键单击窗口中的任意位置并选择 Add(添加)。
  5. 对于文件扩展名类型 .appv,选择 MIME 类型 application/app-v,然后单击 OK(确定)。

将 HTTP 流式传输的 App-V 软件包导入 Citrix DaaS™(以前称为 Citrix Virtual Apps and Desktops 服务)

注意:
此功能仅在 2009 及更高版本的 Virtual Delivery Agents (VDA) 上受支持。如果将具有 HTTP(S) 路径的 App-V 软件包中的应用程序添加到功能级别为 2003 或更高版本的交付组,则这些应用程序将发布到 Citrix DaaS,但除非 VDA 为 2009 或更高版本,否则用户无法从 Citrix Cloud 启动它们。交付组功能级别在创建交付组中进行了解释。
  1. 下载并安装/解压缩最新版本的 CVAD 远程 PowerShell SDK 和 Citrix App-V 包发现模块。请参阅 Citrix DaaS SDK 和 API。
  2. 使用 Package Discovery Module 将 App-V 软件包从 IIS 服务器导入到 Citrix DaaS。例如:
    Import-Module <Download Directory>\Citrix.Cloud.AppLibrary.Admin.v1.psm1
    Import-AppVPackageToCloud
    –PackagePath "https://My.AppVServer.net/Packages/Notepad++.appv"
  3. 登录您的 Citrix Cloud™ 帐户。
  4. 软件包将下载到您计算机上的临时位置,从中提取相关信息并上传到 Citrix DaaS 实例中的应用程序库。

设置

下表总结了在 Citrix Virtual Apps and Desktops 中使用单管理员和双管理员管理方法使用 App-V 的设置任务序列。
单管理员 双管理员 任务
X X 部署 App-V
X X 打包和放置
X 在 Studio 中配置 App-V 服务器地址
X X 在 VDA 计算机上安装软件
X 将 App-V 软件包添加到应用程序库
X 添加 App-V 隔离组(可选)
X X 将 App-V 应用程序添加到交付组

部署 微软 App-V

有关 App-V 部署说明,请参阅 <https://docs.microsoft.com/zh-cn/microsoft-desktop-optimization-pack/>。
(可选)更改 App-V 发布服务器设置。Citrix 建议在 Controller 上使用 SDK cmdlet。有关详细信息,请参阅 SDK 文档。
  • 要查看发布服务器设置,请输入 Get-CtxAppvServerSetting -AppVPublishingServer \<pubServer>。
  • 为确保 App-V 应用程序正常启动,请输入 Set-CtxAppvServerSetting –UserRefreshonLogon 0。
如果您以前使用 GPO 策略设置来管理发布服务器设置,则 GPO 设置会覆盖所有 App-V 集成设置,包括 cmdlet 设置。这可能导致 App-V 应用程序启动失败。Citrix 建议您删除所有 GPO 策略设置,然后使用 SDK 配置这些设置。

打包和放置

对于任一管理方法,请使用 App-V sequencer 创建应用程序包。有关详细信息,请参阅 Microsoft 文档。
  • 对于单一管理员管理,请在 UNC 或 SMB 共享网络位置上提供软件包及其对应的动态配置文件。确保将应用程序添加到交付组的 Studio 管理员至少具有该位置的读取权限。
  • 对于双管理员管理,请从 UNC 路径在 App-V 管理服务器上发布软件包。(不支持从 HTTP URL 发布。)
无论软件包位于 App-V 服务器上还是网络共享上,请确保软件包具有适当的安全权限,以允许 Studio 管理员访问它们。网络共享必须与“经过身份验证的用户”共享,以确保 VDA 和 Studio 默认都具有读取权限。

在 Studio 中配置 App-V 服务器地址

重要提示:
如果 App-V 服务器使用非默认属性值,Citrix 建议在 Controller 上使用 PowerShell cmdlet 指定 App-V 服务器地址。有关详细信息,请参阅 SDK 文档。如果在 Studio 中更改 App-V 服务器地址,您指定的某些服务器连接属性可能会重置为默认值。这些属性用于 VDA 连接到 App-V 发布服务器。如果发生这种情况,请重新配置服务器上任何已重置属性的非默认值。
此过程仅适用于双管理员管理方法。
在站点创建期间或之后,为双管理员管理方法指定 App-V 管理和发布服务器地址。您可以在创建站点期间或之后执行此操作。
在站点创建期间:
  • 在向导的 App-V 页面上,输入 Microsoft App-V 管理服务器的 URL,以及 App-V 发布服务器的 URL 和端口号。
  • 在继续向导之前测试连接。如果测试失败,请参阅下面的“故障排除”部分。
创建站点后:
  1. 在 Studio 导航窗格中,选择 Configuration > App-V Publishing。
  2. 如果您之前未指定 App-V 服务器地址,请在“操作”窗格中选择 Add Microsoft Server。
  3. 要更改 App-V 服务器地址,请在“操作”窗格中选择 Edit Microsoft Server。
  4. 输入 Microsoft App-V 管理服务器的 URL,以及 App-V 发布服务器的 URL 和端口号。
  5. 在关闭对话框之前测试与这些服务器的连接。如果测试失败,请参阅下面的“故障排除”部分。
稍后,如果您想删除与 App-V 管理和发布服务器的所有链接,并阻止 Studio 从这些服务器发现 App-V 软件包,请在“操作”窗格中选择 Remove Microsoft Server。仅当这些服务器上的软件包中没有应用程序当前发布到任何交付组时,才允许执行此操作。如果存在,则必须先从交付组中删除这些应用程序,然后才能删除 App-V 服务器。

在 VDA 计算机上安装软件

包含 VDA 的计算机必须安装两套软件才能支持 App-V:一套来自 Microsoft,另一套来自 Citrix。

Microsoft App-V 客户端

此软件检索虚拟应用程序,在客户端上发布应用程序,并在 Windows 设备上运行时自动设置和管理虚拟环境。App-V 客户端将用户特定的虚拟应用程序设置(例如注册表和文件更改)存储在每个用户的配置文件中。
App-V 客户端可从 Microsoft 获取。在包含 VDA 的每台计算机上,或在用于计算机目录创建 VM 的主映像上安装客户端。注意:Windows 10(1607 或更高版本)和 Windows Server 2016 已包含 App-V 客户端。仅在这些操作系统上,通过运行 PowerShell Enable-AppV cmdlet(无参数)来启用 App-V 客户端。Get-AppVStatus cmdlet 检索当前的启用状态。
提示:
安装 App-V 客户端后,使用管理员权限运行 PowerShell Get-AppvClientConfiguration cmdlet,并确保 EnablePackageScripts 设置为 1。如果未设置为 1,请运行 Set-AppvClientConfiguration -EnablePackageScripts $true。

Citrix App-V 组件

默认情况下,在安装 VDA 时,Citrix App-V 组件软件会被排除。
您可以在 VDA 安装期间控制此默认行为。在图形界面中,在附加组件页面上选择 Citrix Personalization for App-V - VDA 复选框。在命令行界面中,使用 /includeadditional "Citrix Personalization for App-V – VDA" 选项。
如果在 VDA 安装期间未包含 Citrix App-V 组件,但之后想使用 App-V 应用程序:在 Windows 计算机的“程序和功能”列表中,右键单击 Citrix Virtual Delivery Agent 条目,然后选择更改。此时将启动一个向导。在该向导中,启用安装并启用 App-V 发布组件的选项。

在应用程序库中添加或删除 App-V 程序包

这些过程仅适用于单一管理员管理方法。
您必须至少具有包含 App-V 程序包的网络共享的读取访问权限。

将 App-V 程序包添加到应用程序库

  1. 在 Studio 导航窗格中选择配置 > App-V 发布。
  2. 在“操作”窗格中选择添加程序包。
  3. 浏览到包含 App-V 程序包的共享,然后选择一个或多个程序包。
  4. 单击“添加”。

从应用程序库中删除 App-V 程序包

从应用程序库中删除 App-V 程序包会将其从 Studio App-V 发布节点显示中删除。但是,它不会从交付组中删除其应用程序,并且这些应用程序仍然可以启动。该程序包仍保留在其物理网络位置。(此效果与从交付组中删除 App-V 应用程序不同。)
  1. 在 Studio 导航窗格中选择配置 > App-V 发布。
  2. 选择一个或多个要删除的程序包。
  3. 在“操作”窗格中选择“删除包”。

添加、编辑或删除 App-V 隔离组

添加 App-V 隔离组

  1. 在 Studio 导航窗格中选择“App-V 发布”。
  2. 在“操作”窗格中选择“添加隔离组”。
  3. 在“添加隔离组设置”对话框中,键入隔离组的名称和描述。
  4. 从“可用包”列表中,选择要添加到隔离组的应用程序,然后单击右箭头。选定的应用程序现在应显示在“隔离组中的包”列表中。在每个应用程序旁边的“部署”下拉列表中,选择“显式”或“自动”。您还可以使用向上和向下箭头更改列表中的应用程序顺序。
  5. 完成后,单击“确定”。

编辑 App-V 隔离组

  1. 在 Studio 导航窗格中选择“App-V 发布”。
  2. 在中间窗格中选择“隔离组”选项卡,然后选择要编辑的隔离组。
  3. 在“操作”窗格中选择“编辑隔离组”。
  4. 在“编辑隔离组设置”对话框中,更改隔离组名称或描述、添加或删除应用程序、更改其部署类型或更改应用程序顺序。
  5. 完成后,单击“确定”。

删除 App-V 隔离组

移除隔离组不会移除应用程序包。它只会移除分组。
  1. 从 Studio 导航窗格中选择 App-V Publishing。
  2. 在中间窗格中选择 Isolation Groups 选项卡,然后选择要移除的隔离组。
  3. 从“操作”窗格中选择 Remove Isolation Group。
  4. 确认删除。

将 App-V 应用程序添加到交付组

以下过程重点介绍如何将 App-V 应用程序添加到交付组。有关创建交付组的完整详细信息,请参阅创建交付组。
步骤 1: 选择是要创建新的交付组,还是将 App-V 应用程序添加到现有交付组:
要创建包含 App-V 应用程序的交付组:
  1. 在 Studio 导航窗格中选择 交付组。
  2. 在“操作”窗格中选择 Create Delivery Group。
  3. 在向导的后续页面上,指定计算机目录和用户。
要将 App-V 应用程序添加到现有交付组:
  1. 在 Studio 导航窗格中选择 Applications。
  2. 在“操作”窗格中选择 Add Applications。
  3. 选择一个或多个将添加 App-V 应用程序的交付组。
步骤 2: 在向导的“应用程序”页面上,单击“添加”下拉列表以显示应用程序源。选择 App-V。
步骤 3: 在“添加 App-V 应用程序”页面上,选择 App-V 源:App-V 服务器或应用程序库。结果显示包括应用程序名称及其程序包名称和程序包版本。选中要添加的应用程序或应用程序快捷方式旁边的复选框。然后单击“确定”。
步骤 4: 完成向导。
须知:
  • 如果在将 App-V 应用程序添加到交付组时更改其属性,则这些更改会在应用程序启动时生效。例如,如果在将应用程序添加到组时修改其显示名称或图标,则当用户启动该应用程序时,更改会显示。
  • 如果使用动态配置文件自定义 App-V 应用程序的属性,则这些属性将覆盖在将应用程序添加到交付组时所做的任何更改。
  • 如果以后编辑包含 App-V 应用程序的交付组,并且将组的交付类型从桌面和应用程序更改为仅应用程序,则 App-V 应用程序的性能不会发生变化。
  • 从交付组中删除以前发布的(单一管理员)App-V 程序包时,Citrix App-V 客户端组件会尝试清理、取消发布和删除单一管理员管理方法不再使用的任何程序包。
  • 如果您正在使用混合部署(通过单一管理员管理方法和 App-V 发布服务器交付程序包,由双管理员或通过其他机制(例如组策略)进行管理),则无法确定哪些(现在可能冗余的)程序包来自哪个源。在这种情况下,不会尝试清理。
  • 如果在单个交付组中发布超过 100 个 App-V 应用程序,则应用程序可能无法启动。如果是这样,请使用相应绑定元素上的 MaxReceivedMessageSize 属性来增加交付控制器和/或 VDA 上的 Broker Agent 配置中的最大可接收消息大小。

故障排除

仅在使用双管理员方法时可能出现的问题标记为 (DUAL)。
(DUAL) 在 Studio 导航窗格中选择“配置 > App-V 发布”时,出现 PowerShell 连接错误。
  • Studio 管理员也是 App-V 服务器管理员吗?Studio 管理员必须属于 App-V 管理服务器上的“administrators”组,才能与其通信。
(DUAL) 在 Studio 中指定 App-V 服务器地址时,“测试连接”操作返回错误。
  • App-V 服务器是否已开机?可以发送 Ping 命令或检查 IIS 管理器;每个 App-V 服务器都应处于“已启动”和“正在运行”状态。
  • App-V 服务器上是否启用了 PowerShell 远程处理?如果没有,请参阅 <https://docs.microsoft.com/zh-cn/previous-versions/technet-magazine/ff700227(v=msdn.10)>。
  • Studio 管理员也是 App-V 服务器管理员吗?Studio 管理员必须属于 App-V 管理服务器上的 administrators 组,才能与其通信。
  • App-V 服务器上是否启用了文件共享?在 Windows 资源管理器中或使用“运行”命令输入 \\<App-V server FQDN>。
  • App-V 服务器是否具有与 App-V 管理员相同的文件共享权限?在 App-V 服务器上,在“存储的用户名和密码”中为 \\<App-V server FQDN> 添加一个条目,指定在 App-V 服务器上具有管理员权限的用户的凭据。有关指导,请参阅 <http://support.microsoft.com/kb/306541>。
  • App-V 服务器是否在 Active Directory 中?
    如果 Studio 计算机和 App-V 服务器位于没有信任关系的不同 Active Directory 域中,请在 Studio 计算机上的 PowerShell 控制台中运行 winrm s winrm/Config/client '@(TrustedHosts="\<App-V server FQDN>")'。
    如果 TrustedHosts 由 GPO 管理,则会显示以下错误消息:“无法更改配置设置 TrustedHosts,因为其使用受策略控制。需要将策略设置为“未配置”才能更改配置设置。”在这种情况下,请将 App-V 服务器名称的条目添加到 GPO 中的 TrustedHosts 策略(管理模板 > Windows 组件 > Windows 远程管理 (WinRM) > WinRM 客户端)。
(DUAL) 将 App-V 应用程序添加到交付组时发现失败。
  • Studio 管理员是否也是 App-V 管理服务器管理员?Studio 管理员必须属于 App-V 管理服务器上的 administrators 组,以便能够与其通信。
  • App-V 管理服务器是否正在运行?可以发送 Ping 命令或检查 IIS 管理器;每个 App-V 服务器都应处于“已启动”和“正在运行”状态。
  • 两个 App-V 服务器上是否都启用了 PowerShell 远程处理?如果未启用,请参阅 <https://docs.microsoft.com/zh-cn/previous-versions/technet-magazine/ff700227(v=msdn.10)>。
  • 程序包是否具有 Studio 管理员访问所需的相应安全权限?
App-V 应用程序只能在一个浏览器版本中启动。
  • 如果您发布同一浏览器应用程序的多个序列化版本,则每个用户在 VDA 上一次只能启动一个版本的应用程序。即使不涉及 Citrix 组件,并且用户从指向不同路径的桌面快捷方式启动序列化应用程序,也会发生同样的情况。
    用户首次启动的浏览器版本决定了后续运行的浏览器版本。当 Firefox 检测到第二次启动时,它倾向于创建已运行进程的一个实例,而不是创建一个新进程。其他浏览器也可能以相同的方式运行。
    您可以通过将命令行参数 -no-remote 添加到快捷方式的启动命令中,使应用程序在预期的 Firefox 浏览器版本中启动。其他浏览器也提供相同或类似的功能。
    注意:
    您必须使用 XenApp 7.17 或更高版本才能利用快捷方式枚举功能。您还必须更改应用程序两个版本中的程序包才能获得此双向行为。
App-V 应用程序无法启动。
  • (DUAL) 发布服务器是否正在运行?
  • (DUAL) App-V 软件包是否具有适当的安全权限,以便用户可以访问它们?
  • (DUAL) 在 VDA 上,确保 Temp 指向正确的位置,并且 Temp 目录中有足够的可用空间。
  • (DUAL) 在 App-V 发布服务器上,运行 Get-AppvPublishingServer &ast; 以显示发布服务器列表。
  • (DUAL) 在 App-V 发布服务器上,确保 UserRefreshonLogon 设置为 False。
  • (DUAL) 在 App-V 发布服务器上,以管理员身份运行 Set-AppvPublishingServer 并将 UserRefreshonLogon 设置为 False。
  • VDA 上是否安装了受支持的 App-V 客户端版本?VDA 是否启用了 enable package scripts 设置?
  • 在包含 App-V 客户端和 VDA 的计算机上,从注册表编辑器 (regedit) 中,转到 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Citrix\AppV。确保 AppVServers 键具有以下值格式:AppVManagementServer+metadata;PublishingServer(例如:http://xmas-demo-appv.blrstrm.com+0+0+0+1+1+1+0+1;http://xmas-demo-appv.blrstrm.com:8082)。
  • 在包含 App-V 客户端和 VDA 的计算机或主映像上,检查 PowerShell ExecutionPolicy 是否设置为 RemoteSigned。Microsoft 提供的 App-V 客户端未签名,此 ExecutionPolicy 允许 PowerShell 运行未签名的本地脚本和 cmdlet。使用以下两种方法之一设置 ExecutionPolicy:(1) 作为管理员,输入 cmdlet:Set-ExecutionPolicy RemoteSigned,或 (2) 从组策略设置中,转到“计算机配置”>“策略”>“管理模板”>“Windows 组件”>“Windows PowerShell”>“启用脚本执行”。
  • 如果出现错误“RegistrationManager.AttemptRegistrationWithSingleDdc: Failed to register”,请使用相应绑定元素上的 MaxReceivedMessageSize 属性来增加 Delivery Controller 和/或 VDA 上 Broker Agent 配置中的最大可接收消息大小。
如果这些步骤无法解决问题,请启用并检查日志。

日志

App-V 配置相关日志位于 C:\CtxAppvLogs。应用程序启动日志位于:%LOCALAPPDATA%\Citrix\CtxAppvLogs。LOCALAPPDATA 解析为登录用户的本地文件夹。检查应用程序启动失败的用户的本地文件夹。
要启用用于 App-V 的 Studio 和 VDA 日志,您必须具有管理员权限。您还需要一个文本编辑器,例如记事本。
要启用 Studio 日志:
  1. 创建文件夹 C:\CtxAppvLogs。
  2. 转到 C:\Program Files\Citrix\StudioAppVIntegration\SnapIn\Citrix.Appv.Admin.V1。使用文本编辑器打开 CtxAppvCommon.dll.config 并取消注释以下行:\&lt;add key ="LogFileName" value="C:\CtxAppvLogs\log.txt"/>
  3. 重新启动 Broker 服务以开始记录日志。
要启用 VDA 日志:
  1. 创建文件夹 C:\CtxAppvLogs。
  2. 转到 C:\Program Files\Citrix\ Virtual Desktop Agent。使用文本编辑器打开 CtxAppvCommon.dll.config 并取消注释以下行:\&lt;add key ="LogFileName" value="C:\CtxAppvLogs\log.txt"/>
  3. 取消注释该行并将值字段设置为 1:\&lt;add key ="EnableLauncherLogs" value="1"/>
  4. 重新启动计算机以开始记录日志。