应用程序虚拟化
将应用程序虚拟化与思杰虚拟应用和桌面™结合使用
Microsoft Application Virtualization (App-V) 允许您将应用程序作为服务进行部署、更新和支持。用户无需在其自己的设备上安装应用程序即可访问它们。App-V 和 Microsoft User State Virtualization (USV) 提供对应用程序和数据的访问,无论位置和互联网连接如何。 下表列出了支持的版本。
| 应用虚拟化 | Citrix 虚拟应用和桌面 交付控制器 | 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 到当前版本 |
| App-V in Windows Server 2016 | 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 设备上运行时自动设置和管理虚拟环境。您将 App-V 客户端安装在 VDA 上,它会在每个用户的配置文件中存储用户特定的虚拟应用程序设置,例如注册表和文件更改。
应用程序无需任何预配置或更改操作系统设置即可无缝使用。您可以从服务器操作系统和桌面操作系统交付组启动 App-V 应用程序:
- Through Citrix Workspace™ app
- 通过 App-V 客户端和 思杰工作区应用程序
- 由多个用户在多个设备上同时使用
- 通过 思杰 思拓坊™
修改后的 App-V 应用程序属性在应用程序启动时实施。例如,对于显示名称已修改或图标已自定义的应用程序,用户启动应用程序时会显示这些修改。保存在动态配置文件中的应用程序自定义项也会在应用程序启动时应用。
Management methods
您可以使用通过 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 导航窗格中选择 Configuration > App-V Publishing 时,显示屏会显示 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(首先找到的获胜)
- 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> : path。
例如:
F1f4fd78ef044176aad9082073a0c780 : c:\widows\file\packagedeploy.xml
- 将文件保存为 ctxAppVDynamicConfigurations.cfg,并放置在与程序包相同的文件夹中。每次启动程序包中的应用程序时,都会在与 App-V 程序包相同的 UNC 共享上的整个目录层次结构中向上递归搜索此文件。
注意:
当有用户会话打开程序包中的应用程序时,您无法应用对动态部署配置的更改。如果其他用户(但不是当前用户)打开了程序包中的应用程序,则可以应用对动态用户配置文件的更改。
配置 IIS 以使用动态配置文件
VDA 上的 Citrix App-V 组件可以利用放置在程序包旁边的 App-V 部署配置文件和用户配置文件,其规则与 UNC 托管程序包使用的规则相同。 为此,VDA 组件需要权限来浏览 IIS 目录结构以确定要使用的文件。与 UNC 托管程序包不同,VDA 必须首先将配置文件从服务器下载到主机上的临时位置,然后才能在发布中使用它们。这是一项可选功能,如果未启用目录浏览,则动态配置文件将被忽略。
执行以下步骤为您的站点启用目录浏览:
- 在 IIS 管理器控制台中,选择网站节点,然后双击中央窗格中的 目录浏览。
- 单击右侧窗格中的 启用,并选择 时间、大小、扩展名 和 日期。(不要选择长日期。)这使得 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 循环 (DNS Round-Robin) 对管理服务器和发布服务器进行负载平衡。不支持通过 Netscaler、F5(或类似)虚拟 IP 对管理服务器进行负载平衡,因为 Studio 需要通过远程 PowerShell 与管理服务器通信。有关详细信息,请参阅这篇 Citrix 博客文章。
配置 IIS 以托管和流式传输 App-V 包
要使您的 IIS 服务器能够托管和流式传输 App-V 包,请执行以下步骤:
- 打开 IIS 管理器控制台。有关说明,请参阅 https://docs.microsoft.com/zh-cn/previous-versions/iis/6.0-sdk/ms525920(v%3Dvs.90)。
- 右键单击要使用的网站实例,然后选择 添加虚拟目录。
- 输入别名名称以及您的软件包在网络上物理存储的路径。
- 双击中央窗格中的 MIME 类型,然后右键单击窗口中的任意位置并选择 添加。
- 对于文件扩展名类型
.appv,选择 MIME 类型application/app-v,然后单击 确定。
将 HTTP 流式传输的 App-V 包导入 Citrix DaaS™(以前称为 Citrix 虚拟应用和桌面服务)
注意:
此功能仅在 2009 及更高版本的虚拟投递代理 (VDA) 上受支持。如果将具有 HTTP(S) 路径的 App-V 包中的应用程序添加到功能级别为 2003 或更高版本的交付组,则这些应用程序将发布到 Citrix DaaS,但除非 VDA 版本为 2009 或更高版本,否则用户无法从 Citrix Cloud 启动它们。交付组功能级别在 创建交付组 中进行了解释。
- Download and install/unzip the latest versions of the CVAD Remote PowerShell SDK and Citrix App-V Package Discovery module. See the Citrix DaaS SDKs and APIs.
-
使用包发现模块将 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--> - Log in to your Citrix Cloud™ account.
- 包会下载到您计算机上的一个临时位置,从该位置提取相关信息并上传到您的 Citrix DaaS 实例中的应用程序库。
设置
下表总结了使用单管理员和双管理员管理方法在 Citrix Virtual Apps and Desktops 中使用 App-V 的设置任务顺序。
| 单管理员 | 双管理员 | 任务 |
|---|---|---|
| X | X | 部署应用程序虚拟化 |
| X | X | 打包和部署位置 |
| X | 在 Studio 中配置 App-V 服务器地址 | |
| X | X | 在 VDA 计算机上安装软件 |
| X | 将 App-V 程序包添加到应用程序库 | |
| X | 添加 App-V 隔离组(可选) | |
| X | X | 将 App-V 应用程序添加到交付组 |
部署 Microsoft 应用程序虚拟化
有关 App-V 部署说明,请参阅 https://docs.microsoft.com/zh-cn/microsoft-desktop-optimization-pack/。
(可选)更改 App-V 发布服务器设置。Citrix 建议在 Controller 上使用 SDK cmdlet。有关详细信息,请参阅 SDK 文档。
- To view publishing server settings, enter Get-CtxAppvServerSetting -AppVPublishingServer <pubServer>.
- To ensure that App-V applications launch properly, enter 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 和端口号。
- 在继续向导之前测试连接。如果测试失败,请参阅下面的“故障排除”部分。
站点创建后:
- 在 Studio 导航窗格中选择 配置 > App-V 发布。
- 如果您之前未指定 App-V 服务器地址,请在“操作”窗格中选择 Add Microsoft Server(添加 Microsoft 服务器)。
- 要更改 App-V 服务器地址,请在“操作”窗格中选择 Edit Microsoft Server(编辑 Microsoft 服务器)。
- 输入 Microsoft App-V 管理服务器的 URL,以及 App-V 发布服务器的 URL 和端口号。
- 在关闭对话框之前,测试与这些服务器的连接。如果测试失败,请参阅下面的“故障排除”部分。
稍后,如果您想删除与 App-V 管理和发布服务器的所有链接,并阻止 Studio 从这些服务器发现 App-V 程序包,请在“操作”窗格中选择 Remove Microsoft Server(删除 Microsoft 服务器)。仅当这些服务器上的程序包中没有应用程序当前发布到任何交付组时,才允许执行此操作。如果已发布,则必须先从交付组中删除这些应用程序,然后才能删除 App-V 服务器。
在 VDA 计算机上安装软件
包含 VDA 的计算机必须安装两套软件才能支持 App-V:一套来自 Microsoft,另一套来自 Citrix。
Microsoft App-V client
此软件检索虚拟应用程序,在客户端上发布应用程序,并在 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 检索当前的启用状态。
提示:
After you install the App-V client, with Administrator permissions, run the PowerShell Get-AppvClientConfiguration cmdlet, and ensure that EnablePackageScripts is set to 1. If it is not set to 1, run Set-AppvClientConfiguration -EnablePackageScripts $true.
Citrix App-V components
当您安装 VDA 时,Citrix App-V 组件软件默认不包括在内。
You can control this default behavior during VDA installation. In the graphical interface, select the Citrix Personalization for App-V - VDA check box on the Additional Components page. In the command line interface, use the /includeadditional “Citrix Personalization for App-V – VDA” option.
如果在 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 发布。
- 在中间窗格中选择 Isolation Groups 选项卡,然后选择要删除的隔离组。
- 从“操作”窗格中选择 移除隔离组。
- 确认删除。
将 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 配置中的最大可接收消息大小。
故障排除
仅在使用双管理员方法时可能出现的问题标记为 (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 服务器是否在活动目录中?
If the Studio machine and the App-V server are in different Active Directory domains that do not have a trust relationship, from the PowerShell console on the Studio machine, run winrm s winrm/Config/client ‘@(TrustedHosts=”<App-V server FQDN>”)’.
如果 TrustedHosts 由 GPO 管理,则会显示以下错误消息:“无法更改配置设置 TrustedHosts,因为其使用受策略控制。需要将策略设置为“未配置”才能更改配置设置。”在这种情况下,请在 GPO(管理模板 > Windows 组件 > Windows 远程管理 (WinRM) > WinRM 客户端)的 TrustedHosts 策略中为 App-V 服务器名称添加一个条目。
(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 应用程序无法启动。
- (双重) 发布服务器是否正在运行?
- (双重) App-V 包是否具有适当的安全权限,以便用户可以访问它们?
- (双重) 在 VDA 上,确保 Temp 指向正确的位置,并且 Temp 目录中有足够的可用空间。
- (双重) 在 App-V 发布服务器上,运行
Get-AppvPublishingServer \*以显示发布服务器列表。 - (双重) 在 App-V 发布服务器上,确保 UserRefreshonLogon 设置为 假。
- (DUAL) On the App-V publishing server, as an administrator, run Set-AppvPublishingServer and set UserRefreshonLogon to False.
- VDA 上是否安装了受支持的 App-V 客户端版本?VDA 是否启用了 enable package scripts 设置?
- On the machine containing the App-V client and VDA, from the Registry editor (regedit), go to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Citrix\AppV. Ensure that the AppVServers key has the following value format: AppVManagementServer+metadata;PublishingServer (for example:
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 执行策略是否设置为 RemoteSigned。Microsoft 提供的 App-V 客户端未签名,此执行策略允许 PowerShell 运行未签名的本地脚本和 cmdlet。使用以下两种方法之一设置执行策略:(1) 作为管理员,输入 cmdlet:Set-ExecutionPolicy RemoteSigned,或 (2) 从组策略设置中,转到“计算机配置”>“策略”>“管理模板”>“Windows 组件”>“Windows PowerShell”>“启用脚本执行”。
- If the error “RegistrationManager.AttemptRegistrationWithSingleDdc: Failed to register” appears, use the MaxReceivedMessageSize property on the appropriate binding element to increase Max Receivable message size in the configuration of the Delivery Controller and/or the Broker Agent on the VDA.
如果这些步骤无法解决问题,请启用并检查日志。
日志
App-V 配置相关日志位于 C:\CtxAppvLogs。应用程序启动日志位于:%LOCALAPPDATA%\Citrix\CtxAppvLogs。LOCALAPPDATA 解析为已登录用户的本地文件夹。检查应用程序启动失败的用户的本地文件夹。
要启用用于 App-V 的 Studio 和 VDA 日志,您必须具有管理员权限。您还需要一个文本编辑器,例如记事本。
要启用 Studio 日志:
- 创建名为 C:\CtxAppvLogs 的文件夹。
- Go to C:\Program Files\Citrix\StudioAppVIntegration\SnapIn\Citrix.Appv.Admin.V1. Open CtxAppvCommon.dll.config in a text editor and uncomment the line: <add key =”LogFileName” value=”C:\CtxAppvLogs\log.txt”/>
- 重新启动 Broker 服务以开始记录日志。
要启用 VDA 日志:
- Create the folder C:\CtxAppvLogs.
- Go to C:\Program Files\Citrix\ Virtual Desktop Agent. Open CtxAppvCommon.dll.config in a text editor and uncomment the following line: <add key =”LogFileName” value=”C:\CtxAppvLogs\log.txt”/>
- Uncomment the line and set the value field to 1: <add key =”EnableLauncherLogs” value=”1”/>
- 重新启动计算机以开始记录日志。