App-V
结合使用 App-V 与 Citrix Virtual Apps and Desktops
利用 Microsoft Application Virtualization (App-V),您可以将应用程序作为服务进行部署、更新及提供支持。这些应用程序无需安装在用户设备上即可供访问。借助 App-V 和 Microsoft User State Virtualization (USV),用户无论身处何处,是否连接 Internet,均可对应用程序和数据进行访问。 下表列出了支持的版本。
App-V | Citrix Virtual Apps and Desktops Delivery Controller | Citrix Virtual Apps and Desktops 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 Server 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 应用程序
- 同时由多个用户在多台设备上启动
- 通过 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 包添加到站点级应用程序库 [1]。在此方法中,Citrix App-V 组件会在启动应用程序时处理部署配置文件。(用户配置文件不受支持。)使用单管理管理方法时,Citrix App-V 组件会在主机上管理包的生命周期的所有方面。包在代理启动时或检测到配置变化(也可以在会话启动时)时添加到计算机中。收到来自 Citrix Workspace 应用程序的启动请求时,包首先按需发布给各个用户。
单管理还管理满足在 Studio 中做出的隔离组配置定义所需的连接组的生命周期。
[1] 应用程序库是一个 Citrix 术语,是指用于存储有关 App-V 包的信息的缓存存储库。同时,应用程序库还可以存储有关其他 Citrix 应用程序交付技术的信息。
在这两种管理方法中,如果将 VDA 配置为丢弃用户数据,则必须在下次会话启动时重做发布(或同步)。
您可以使用其中一种管理方法,也可以同时使用这两种管理方法。换言之,在向交付组添加应用程序时,应用程序可能来自 App-V 服务器上或网络共享中的 App-V 包。
注意:
如果同时使用这两种管理方法,并且 App-V 包在两个位置都有动态配置文件,则使用 App-V 服务器中的文件(双管理)。
在 Studio 导航窗格中选择配置 > App-V 发布后,系统将显示 App-V 包名称和源。“源”列可指示包是位于 App-V 服务器上还是缓存在应用程序库中。选择某个包后,详细信息窗格会列出该包中的应用程序和快捷方式。
动态配置文件
概述
可以使用动态配置文件自定义 App-V 包,在将动态配置文件应用于此包后,可以使用它来更改其特征。例如,您可以使用它们来定义额外的应用程序快捷方式和行为。Citrix App-V 支持两种类型的动态配置文件。在启动应用程序时应用文件设置:
- 部署配置文件可为所有用户提供计算机范围的配置。这些文件应命名为
<packageFileName>_DeploymentConfig.xml
,并位于与其应用到的 App-V 包相同的文件夹中。单管理和双管理均支持。 - 用户配置文件可提供用户特定的配置,支持针对每个用户对包进行自定义设置。单管理支持采用以下格式的用户配置文件:
<packageFileName>_[UserSID | Username | GroupSID |GroupName_]UserConfig.xml
,并且与其应用到的 App-V 包位于相同的文件夹中。
如果存在面向某个特定包的多个用户配置文件,则将按以下优先级顺序进行应用:
- 用户 SID
- 用户名
- AD 组 SID(首先应用找到的第一个 SID)
- AD 组名称(首先应用找到的第一个组名称)
- 默认值
例如
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 包位于同一文件夹中的动态配置文件。在启动程序包中的应用程序时,将会重新应用对相应动态配置文件所做的任何更改。如果您的动态配置文件与其包位于不同的位置,请使用映射文件将包映射到其部署配置文件。
创建映射文件
- 打开新的文本文件。
-
对于每个动态配置文件,添加一行,用于使用“<PackageGuid> : 路径”格式指定包的路径。
例如:
F1f4fd78ef044176aad9082073a0c780 : c:\widows\file\packagedeploy.xml
- 将此文件另存为 ctxAppVDynamicConfigurations.cfg 并置于此包所在文件夹中。每次启动 App-V 包中的应用程序时,都会在与该包相同的 UNC 共享的整个目录层次结构中向上递归搜索此文件。
注意:
在包中的某个应用程序处于打开状态的用户会话中,不能对动态部署配置应用所做的更改。如果其他用户(而非当前用户)已打开该包中的某个应用程序,则可以将更改应用到动态用户配置文件。
将 IIS 配置为使用动态配置文件
根据 UNC 托管包使用的相同规则,VDA 上的 Citrix App-V 组件可以使用放置在包旁边的 App-V 部署配置文件和用户配置文件。 为此,VDA 组件需要浏览 IIS 目录结构以确定要使用的文件的权限。与 UNC 托管包不同,VDA 必须先将配置文件从服务器下载到主机上的临时位置,然后才能在发布中使用。这是一项可选功能,如果未启用目录浏览,则会忽略动态配置文件。
请执行以下步骤以对您的站点启用目录浏览:
- 在 IIS 管理器控制台中,选择 Web 站点节点, 然后双击中央窗格中的目录浏览。
- 单击右侧窗格中的启用,然后选择时间、大小、扩展和日期。(请勿选择“长日期”。)这使 VDA 上的 Citrix App-V 组件能够判断其是应用了最新版本的配置文件,还是需要更新。
隔离组
使用 App-V 单管理方法时,创建隔离组将允许您指定必须在沙盒中运行的互相依赖的应用程序组。该功能与 App-V 连接组相似,但并不完全一致。Citrix 使用“自动”和“显式”作为包部署选项,而非 App-V 管理服务器使用的强制和可选包术语。
- 用户启动 App-V 应用程序(主应用程序)时,会对隔离组进行搜索以查找其他标记为自动包含的应用程序包。这些包会自动下载并包含在隔离组中。您不必将其添加到包含主应用程序的交付组中。
- 只有在您已经将某个应用程序显式添加到包含主应用程序的同一个交付组的情况下,被标记为显式包含的隔离组中的该应用程序包才会下载。
这样,您可以创建包含各种全局适用于所有用户的自动包含应用程序的隔离组。此外,该组可以包含各种插件和其他(可能具有特定许可限制的)应用程序,您可以将其限制为某一组(通过交付组确定的)用户而无需创建更多的隔离组。
例如,应用程序“app-a”需要使用 JRE 1.7 才可运行。您可以创建一个包含 app-a(具有显式部署类型)和 JRE 1.7(具有自动部署类型)的隔离组。然后,将这些 App-V 包添加到一个或多个交付组中。用户启动 app-a 时,JRE 1.7 会通过它自动部署。
可以将一个应用程序添加到多个 App-V 隔离组。但是,当用户启动该应用程序时,始终会使用该应用程序添加到的首个隔离组。无法对包含该应用程序的其他隔离组进行排序或优先级划分。
对 App-V 服务器进行负载平衡
如果使用双管理方法,则支持使用 DNS 轮询对管理服务器和发布服务器进行负载平衡。由于 Studio 需要通过远程 PowerShell 与管理服务器进行通信,因此不支持对 Netscaler、F5(或类似)虚拟 IP 后的管理服务器进行负载平衡。有关详细信息,请参阅此 Citrix 博客文章。
将 IIS 配置为托管和通过流技术传输 App-V 包
要使 IIS 服务器能够托管和通过流技术传输 App-V 包,请执行以下步骤:
- 打开 IIS 管理器控制台。有关说明,请参阅https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525920(v%3Dvs.90)。
- 右键单击要使用的 Web 站点实例, 然后选择添加虚拟目录。
- 键入别名以及您的包在网络中物理存储的路径。
- 双击中央窗格中的 MIME 类型,然后右键单击窗口中的任意位置并选择添加。
- 对于文件扩展名类型
.appv
,请选择“MIME 类型application/app-v
”,然后单击确定。
将 HTTP 流 App-V 包导入 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)
注意:
此功能仅在版本 2009 及更高版本的 Virtual Delivery Agent (VDA) 上受支持。如果将包含 HTTP(S) 路径的 App-V 包中的应用程序添加到功能级别为 2003 或更高版本的交付组中,这些应用程序将发布到 Citrix DaaS,但用户无法从 Citrix Cloud 启动,除非 VDA 的版本为 2009 或更高版本。创建交付组中介绍了交付组功能级别。
- 下载并安装/解压 CVAD 远程 PowerShell SDK 和 Citrix App-V 包发现模块的最新版本。请参阅 Citrix DaaS SDK 和 API。
-
使用包发现模块将 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" <!--NeedCopy-->
- 登录您的 Citrix Cloud 帐户。
- 包将下载到计算机上的临时位置,您将从该位置提取相关信息并将其上载到 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 应用程序 |
部署 Microsoft App-V
有关 App-V 部署说明,请参阅 https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/。
(可选)更改 App-V 发布服务器设置。Citrix 建议在控制器上使用 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 服务器地址
重要:
Citrix 建议在 Controller 上使用 PowerShell cmdlet 指定 App-V 服务器地址(如果这些服务器使用非默认属性值)。有关详细信息,请参阅 SDK 文档。如果要在 Studio 中更改 App-V 服务器地址,您指定的某些服务器连接属性可能会重置为默认值。这些属性在 VDA 上用于连接到 App-V 发布服务器。如果出现此情况,请重新配置服务器上所有已重置的属性的非默认值。
此过程仅适用于双管理方法。
在创建站点期间或创建之后,为双管理方法指定 App-V 管理和发布服务器地址。您可以在创建站点期间或创建之后执行此操作。
在创建站点期间:
- 在向导的 App-V 页面上,输入 Microsoft App-V 管理服务器的 URL 以及 App-V 发布服务器的 URL 和端口号。
- 在继续向导之前,请测试此连接。如果测试失败,请参阅下文“故障排除”部分。
在创建站点之后:
- 在 Studio 导航窗格中选择配置 > App-V 发布。
- 如果您先前未指定 App-V 服务器地址,请在“操作”窗格中选择添加 Microsoft 服务器。
- 要更改 App-V 服务器地址,请在“操作”窗格中选择编辑 Microsoft 服务器。
- 输入 Microsoft App-V 管理服务器的 URL 以及 App-V 发布服务器的 URL 和端口号。
- 在关闭此对话框之前,请测试与这些服务器的连接。如果测试失败,请参阅下文“故障排除”部分。
之后,如果要删除指向 App-V 管理和发布服务器的所有链接,并阻止 Studio 从这些服务器中发现 App-V 包,请在“操作”窗格中选择删除 Microsoft 服务器。只有当目前没有在任何交付组中发布这些服务器上的包中的任何应用程序时,才允许执行此操作。如果已发布应用程序,您必须先从交付组中删除这些应用程序,然后才能删除 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 包
- 在 Studio 导航窗格中选择配置 > App-V 发布。
- 在“操作”窗格中选择添加包。
- 浏览到包含 App-V 包的共享并选择一个或多个包。
- 单击添加。
从应用程序库中删除 App-V 包
从应用程序库删除 App-V 包会将该软件包从 Studio App-V 发布节点显示中删除。但是,不会从交付组中删除其应用程序,这些应用程序仍然可以启动。该包仍会保留在其物理网络位置。(其效果与从交付组删除 App-V 应用程序是不同的。)
- 在 Studio 导航窗格中选择配置 > App-V 发布。
- 选择一个或多个要删除的包。
- 在“操作”窗格中选择删除包。
添加、编辑或删除 App-V 隔离组
添加 App-V 隔离组
- 在 Studio 导航窗格中选择 App-V 发布。
- 在“操作”窗格中选择添加隔离组。
- 在添加隔离组设置对话框中,键入隔离组的名称和说明。
- 从“可用包”列表中,选择您想要添加到隔离组中应用程序,然后单击右键。选定的应用程序现在应显示在“隔离组中的包”列表中。在每个应用程序旁边的部署下拉列表中,选择显式或自动。您也可以使用向上和向下箭头来更改列表中应用程序的顺序。
- 完成后,单击确定。
编辑 App-V 隔离组
- 在 Studio 导航窗格中选择 App-V 发布。
- 在中间窗格中选择隔离组选项卡,然后选择要编辑的隔离组。
- 在“操作”窗格中选择编辑隔离组。
- 在编辑隔离组设置对话框中,更改隔离组名称或说明、添加或删除应用程序、更改其部署类型或更改应用程序顺序。
- 完成后,单击确定。
删除 App-V 隔离组
删除隔离组不会删除应用程序包。只会删除分组。
- 在 Studio 导航窗格中选择 App-V 发布。
- 在中间窗格中选择隔离组选项卡,然后选择要删除的隔离组。
- 在“操作”窗格中选择删除隔离组。
- 确认删除。
向交付组添加 App-V 应用程序
以下过程重点介绍如何向交付组添加 App-V 应用程序。有关创建交付组的完整详细信息,请参阅创建交付组。
步骤 1: 选择您是要创建新的交付组还是要将 App-V 应用程序添加到现有交付组:
要创建包含 App-V 应用程序的交付组,请执行以下操作:
- 在 Studio 导航窗格中选择交付组。
- 在“操作”窗格中选择创建交付组。
- 在一系列向导页面上,指定计算机目录和用户。
要将 App-V 应用程序添加到现有交付组,请执行以下操作:
- 在 Studio 导航窗格中选择应用程序。
- 在“操作”窗格中选择添加应用程序。
- 选择要添加 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 属性来增加 Delivery Controller 和/或 VDA 上的 Broker Agent 配置中的最大应收邮件大小。
故障排除
标有“(双)”的问题只有在使用双管理方法时才会发生。
(双)在 Studio 导航窗格中选择配置 > App-V 发布时出现 PowerShell 连接错误。
- Studio 管理员是否同时是 App-V 服务器管理员? Studio 管理员必须属于 App-V 管理服务器上的“管理员”组才能与之通信。
(双)在 Studio 中指定 App-V 服务器地址时,测试连接操作返回错误。
- 是否已启动 App-V 服务器? 请发送 Ping 命令或检查 IIS 管理器;每个 App-V 服务器均应处于“已启动”或“正在运行”状态。
- 是否已在 App-V 服务器上启用 PowerShell 远程处理? 如果未启用,请参阅 https://docs.microsoft.com/en-us/previous-versions/technet-magazine/ff700227(v=msdn.10)。
- Studio 管理员是否同时是 App-V 服务器管理员? Studio 管理员必须属于 App-V 管理服务器上的管理员组才能与之通信。
- 是否已在 App-V 服务器上启用文件共享? 在 Windows 资源管理器中或在“运行”命令中输入
\\<App-V server FQDN>
。 - App-V 服务器是否具有与 App-V 管理员相同的文件共享权限? 在 App-V 服务器上的“Stored User Names and Passwords”(存储的用户名和密码)中为
\\<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 管理,将显示以下错误消息:“The config setting TrustedHosts cannot be changed because use is controlled by policies. 策略需要设置为“未配置”才能更改配置设置”。在这种情况下,请在 GPO 的 TrustedHosts 策略中添加 App-V 服务器名称条目(管理模板 > Windows 组件 > Windows 远程管理(WinRM) > WinRM 客户端)。
(双) 在将 App-V 应用程序添加到交付组时,发现失败。
- Studio 管理员是否同时是 App-V 管理服务器管理员? Studio 管理员必须属于 App-V 管理服务器上的管理员组才能与之通信。
- App-V 管理服务器是否正在运行? 请发送 Ping 命令或检查 IIS 管理器;每个 App-V 服务器均应处于“已启动”或“正在运行”状态。
- 两个 App-V 服务器是否均已启用 PowerShell 远程处理? 如果未启用,请参阅 https://docs.microsoft.com/en-us/previous-versions/technet-magazine/ff700227(v=msdn.10)。
- 包是否具有适当的安全权限以供 Studio 管理员访问?
App-V 应用程序只在一个浏览器版本启动 。
-
如果发布同一浏览器应用程序的多个排序版本,VDA 上的每个用户一次只能启动该应用程序的一个版本。即使不涉及 Citrix 组件,并且用户从指向不同路径的桌面快捷方式启动排序的版本时,也会出现相同的情况。
无论用户首先启动哪个浏览器版本,都将决定随后为其运行的浏览器版本。Firefox 检测到自己的第二次启动时,它会首选创建已在运行的进程的实例,而不是创建新进程。其他浏览器的行为方式可能相同。
您可以通过将命令行参数 -no-remote 添加快捷方式的启动命令,以实现在目标 Firefox 浏览器版本中启动应用程序。其他浏览器提供相同或类似的工具。
注意:
必须使用 XenApp 7.17 或更高版本才能利用快捷方式枚举功能。您还必须在该应用程序的两个版本中更改包才能获取此双向行为。
App-V 应用程序不启动。
- (双)发布服务器是否正在运行?
- (双)App-V 包是否具有适当的安全权限以供用户访问?
- (双)在 VDA 上,确保 Temp 指向正确的位置,并且 Temp 目录具有足够的可用空间。
- (双)在 App-V 发布服务器上,运行
Get-AppvPublishingServer \*
以显示发布服务器的列表。 - (双)在 App-V 发布服务器上,确保 UserRefreshonLogon 设置为“False”。
- (双)在 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”(RegistrationManager.AttemptRegistrationWithSingleDdc: 注册失败),请在相应的绑定元素上使用 MaxReceivedMessageSize 属性来增加 Delivery Controller 和/或 VDA 上的 Broker Agent 配置中的最大应收邮件大小。
如果这些步骤无法解决问题,则应启用并检查日志。
日志
与 App-V 配置相关的所有日志均位于 C:\CtxAppvLogs 中。应用程序启动日志位于 %LOCALAPPDATA%\Citrix\CtxAppvLogs 中。LOCALAPPDATA 会解析为已登录用户的本地文件夹。检查应用程序启动失败的用户的本地文件夹。
要启用 App-V 所使用的 Studio 和 VDA 日志,您必须具有管理员权限。此外,您还需要使用文本编辑器(例如记事本)。
要启用 Studio 日志,请执行以下操作:
- 创建文件夹 C:\CtxAppvLogs。
- 转至 C:\Program Files\Citrix\StudioAppVIntegration\SnapIn\Citrix.Appv.Admin.V1。在文本编辑器中打开 CtxAppvCommon.dll.config,然后取消注释以下行:<add key =”LogFileName” value=”C:\CtxAppvLogs\log.txt”/>
- 重新启动 Broker Service 以启动日志记录。
要启用 VDA 日志,请执行以下操作:
- 创建文件夹 C:\CtxAppvLogs。
- 转至 C:\Program Files\Citrix\Virtual Desktop Agent。在文本编辑器中打开 CtxAppvCommon.dll.config,然后取消注释以下行:<add key =”LogFileName” value=”C:\CtxAppvLogs\log.txt”/>
- 取消注释以下行并将值字段设置为 1:<add key =”EnableLauncherLogs” value=”1”/>
- 重新启动计算机以启动日志记录。