XenApp和XenDesktop

App-V

将App-V与XenApp和XenDesktop结合使用

利用微软应用程序虚拟化(App-V),您可以将应用程序作为服务进行部署,更新及提供支持。这些应用程序无需安装在用户设备上即可供访问。借助App-V和微软用户状态虚拟化(USV),用户无论身处何处,是否连接互联网,均可对应用程序和数据进行访问。

下表列出了支持的版本。

App-V XenDesktop和XenApp版本
交付控制器 的共识
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,请参阅微软文档。下面概述了本文提及的App-V组件:

  • 管理服务器。可提供一个中央控制台,用于管理App-V基础结构,并向App-V桌面客户端和远程桌面服务客户端交付虚拟应用程序。App-V管理服务器将进行身份验证,发出请求并提供管理员所需的安全性,计量,监视及数据收集功能。服务器使用活动目录和支持工具来管理用户和应用程序。
  • 发布服务器。可为App-V客户端提供适用于特定用户的应用程序,并托管要通过流技术推送的虚拟应用程序软件包。它从管理服务器提取应用程序包。
  • 客户端。检索虚拟应用程序,在客户端上发布应用程序以及在运行时自动设置和管理Windows设备上的虚拟环境。您可以在VDA上安装App-V客户端,用于存储用户特定的虚拟应用程序设置,例如各个用户的配置文件中的注册表和文件更改。

无需对操作系统设置进行任何预先配置或更改,即可无缝使用应用程序。可以从服务器操作系统和桌面操作系统交付组启动App-V应用程序:

  • 通过Citrix Receiver
  • 从“开始”菜单
  • 通过App-V客户端和Citrix Receiver
  • 同时由多个用户在多台设备上启动
  • 通过Citrix StoreFront

应用程序启动时,会实现修改的App-V应用程序属性。例如,对于修改过显示名称或具有自定义图标的应用程序,用户启动应用程序时会显示修改内容。

管理方法

您可以使用通过App-V音序器创建的App-V软件包,并将这些软件包放在App-V服务器或网络共享上。

  • App-V服务器:使用App-V服务器上软件包中的应用程序,要求工作室和App-V服务器始终可以彼此通信,以便执行发现和配置操作并下载到的共识。这样就会产生硬件、基础结构和管理开销。工作室和App-V服务器必须始终保持同步,特别是对于用户权限来说更是如此。

    这种管理方法称为双管理,因为访问App-V包和应用程序需要同时使用Studio和App-V服务器控制台。这种方法最适合紧密耦合的App-V和Citrix部署环境。

  • 网络共享:将软件包放置在网络共享上,可以使工作室不再依赖于App-V服务器和数据库基础结构,从而降低开销。(您仍然需要在每个VDA上安装Microsoft App-V客户端.)

    这种管理方法称为单管理,因为使用App-V软件包和应用程序只需要Studio控制台。您可以浏览到网络共享,并从此位置将一个或多个App-V软件包添加到站点级应用程序库中。

    应用程序库是一个Citrix术语,是指用于存储有关App-V包的信息的缓存存储库。同时,应用程序库还可以存储有关其他Citrix应用程序交付技术的信息。

您可以使用其中一种管理方法,也可以同时使用这两种管理方法。换言之,在向交付组添加应用程序时,应用程序可能来自App-V服务器上的App-V软件包,也可能来自网络共享,或者同时来自这两者。

在工作室导航窗格中选择配置> App-V发布后,系统将显示App-V包名称和源。“源”列可指示软件包是位于App-V服务器上还是缓存在应用程序库中。选择一个软件包后,详细信息窗格会列出该软件包中的应用程序。

对App-V服务器进行负载平衡

如果使用双管理方法,则支持使用DNS轮询对管理服务器和发布服务器进行负载平衡。由于工作室需要通过远程PowerShell与管理服务器进行通信,因此不支持对Netscaler, F5(或类似)虚拟IP后的管理服务器进行负载平衡。有关详细信息,请参阅此思杰博客文章

隔离组

使用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隔离组。但是,当用户启动该应用程序时,始终会使用该应用程序添加到的首个隔离组。无法对包含该应用程序的其他隔离组进行排序或优先级划分。

设置

下表按顺序总结了为在XenApp和XenDesktop中使用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/en-us/microsoft-desktop-optimization-pack/?redirectedfrom=MSDN

(可选)更改App-V发布服务器设置。Citrix 建议在控制器上使用 SDK cmdlet。有关详细信息,请参阅 SDK 文档。

  • 要查看发布服务器设置,请输入Get-CtxAppvServerSetting -AppVPublishingServer <pubServer>
  • 要确保App-V应用程序正常启动,请输入0 . Set-CtxAppvServerSetting -UserRefreshonLogon

如果您先前使用GPO策略设置管理发布服务器设置,则GPO设置会覆盖任何App-V集成设置,包括cmdlet设置。这样可能会导致App-V应用程序启动失败。Citrix 建议您先删除所有 GPO 策略设置,然后再使用 SDK 配置这些设置。

打包和放置

对于任一管理方法,请使用App-V音序器创建应用程序软件包。有关详细信息,请参阅微软文档。

  • 对于单管理方法,请确保将软件包放置在unc或SMB共享网络位置上。确保向交付组添加应用程序的工作室管理员对该位置至少具有读取访问权限。
  • 对于双管理方法,请从UNC路径在App-V管理服务器上发布软件包。(不支持从HTTP url发布.)

无论软件包是位于App-V服务器上还是位于网络共享上,请确保软件包都具有相应的安全权限,以使工作室管理员可以访问它们。必须与“已通过身份验证的用户”共享网络共享以确保默认情况下的共识和工作室具有读取权限。

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

重要:

Citrix建议在控制器上使用PowerShell cmdlet指定App-V服务器地址(如果这些服务器使用非默认属性值)。有关详细信息,请参阅SDK文档。如果要在工作室中更改App-V服务器地址,您指定的某些服务器连接属性可能会重置为默认值。这些属性在VDA上用于连接到App-V发布服务器。如果出现此情况,请重新配置服务器上所有已重置的属性的非默认值。

此过程仅适用于双管理方法。

在创建站点期间或创建之后,为双管理方法指定App-V管理和发布服务器地址。您可以在创建站点期间或创建之后执行此操作。

在创建站点期间:

  • 在向导的App-V页面上,输入微软App-V管理服务器的URL以及App-V发布服务器的URL和端口号。在继续向导之前,请测试此连接。如果测试失败,请参阅下文"故障排除"部分。

在创建站点之后:

  1. 在工作室导航窗格中选择配置> App-V发布
  2. 如果您先前未指定App-V服务器地址,请在"操作"窗格中选择添加微软服务器
  3. 要更改App-V服务器地址,请在"操作"窗格中选择编辑微软服务器
  4. 输入微软App-V管理服务器的URL以及App-V发布服务器的URL和端口号。
  5. 在关闭此对话框之前,请测试与这些服务器的连接。如果测试失败,请参阅下文"故障排除"部分。

之后,如果要删除指向App-V管理和发布服务器的所有链接,并阻止工作室从这些服务器中发现App-V包,请在“操”作窗格中选择删除微软服务器。只有当目前没有在任何交付组中发布这些服务器上的软件包中的任何应用程序时,才允许执行此操作。如果已发布应用程序,您必须先从交付组中删除这些应用程序,然后才能删除App-V服务器。

在vda计算机上安装软件

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

微软App-V客户端

此软件可检索虚拟应用程序,在客户端发布应用程序并在运行时自动设置和管理Windows设备上的虚拟环境。App-V客户端可存储用户特定的虚拟应用程序设置,例如各个用户的配置文件中的注册表和文件更改。

App-V客户端可从微软获取。在包含 VDA 的每台计算机上或计算机目录用于创建 VM 的主映像上安装客户端。注意: Windows 10(1607或更高版本)和Windows Server 2016已包括App-V客户端。请仅在这些操作系统中,通过运行PowerShellEnable-AppVcmdlet(不带任何参数)来启用App-V客户端。Get-AppVStatusCmdlet将检索当前的启用状态。

提示:在安装App-V客户端之后,请以管理员权限运行PowerShellGet-AppvClientConfigurationcmdlet,并确保EnablePackageScripts设置为如果未设置为 1,则运行Set-AppvClientConfiguration -EnablePackageScripts $true

Citrix App-V组件

安装VDA时,会默认安装并启用Citrix App-V组件软件。

您可以在vda安装过程中控制此默认操作。在图形界面中,取消选中附加组件页面上的Citrix个性化应用程序- v - VDA复选框。在命令行接口中,将/排除“Citrix个性化应用程序- v - VDA”选项包括进来。

如果您在VDA安装过程中明确禁用了Citrix App-V组件的安装,但后来要使用App-V应用程序,请执行以下操作:在Windows计算机的“程序和功能“列表中,右键单击Citrix虚拟交付代理条目,然后选择更改。此时将启动一个向导。在该向导中,请启用相应的选项以安装和启用 App-V 发布组件。

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

这些过程仅适用于单管理方法。

您必须对包含App-V包的网络共享至少具有读取访问权限。

向应用程序库添加App-V包

  1. 在工作室导航窗格中选择配置> App-V发布
  2. 在“操作”窗格中选择添加软件包
  3. 浏览到包含App-V包的共享并选择一个或多个软件包。
  4. 单击添加

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

从应用程序库删除App-V包会将该软件包从Studio App-V发布节点显示中删除。但是,不会从交付组中删除其应用程序,这些应用程序仍然可以启动。该软件包仍会保留在其物理网络位置。(其效果与从交付组删除App-V应用程序是不同的.)

  1. 在工作室导航窗格中选择配置> App-V发布
  2. 选择一个或多个要删除的软件包。
  3. 在“操作”窗格中选择删除软件包

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

添加App-V隔离组

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

编辑App-V隔离组

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

删除App-V隔离组

删除隔离组不会删除应用程序软件包。只会删除分组。

  1. 在工作室导航窗格中选择App-V发布
  2. 在中间窗格中选择隔离组选项卡,然后选择要删除的隔离组。
  3. 在“操作”窗格中选择删除隔离组
  4. 确认删除。

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

以下过程重点介绍如何向交付组添加App-V应用程序。有关创建交付组的完整详细信息,请参阅创建交付组

步骤 1:选择您是要创建新的交付组还是要将App-V应用程序添加到现有交付组:

要创建包含App-V应用程序的交付组,请执行以下操作:

  1. 在工作室导航窗格中选择交付组
  2. 在“操作”窗格中选择创建交付组
  3. 在一系列向导页面上,指定计算机目录和用户。

要将App-V应用程序添加到现有交付组,请执行以下操作:

  1. 在工作室导航窗格中选择应用程序
  2. 在“操作”窗格中选择添加应用程序
  3. 选择要添加App-V应用程序的一个或多个交付组。

步骤 2:在向导的应用程序页面上,单击添加下拉列表以显示应用程序源。选择App-V

步骤 3:添加App-V应用程序页面上,选择" App-V源":App-V服务器或应用程序库。生成的显示内容包括应用程序名称及其软件包名称和软件包版本。选中要添加的应用程序旁边的复选框。然后单击确定

步骤 4:完成向导。

须知:

  • 如果在将App-V应用程序添加到交付组时更改了其属性,则所做更改将在应用程序启动时生效。例如,如果在将某个应用程序添加到组中时修改了其显示名称或图标,则在用户启动该应用程序时会显示所做的更改。
  • 如果以后编辑包含App-V应用程序的交付组,而该组的交付类型从“桌面和应用程序”更改为“仅限应用程序”,则App-V应用程序性能不会发生变化。
  • 从交付组中删除以前发布的(单管理员)App-V包时,Citrix App-V客户端组件会尝试清理,取消发布和删除单管理员管理方法不再使用的任何包。
  • 如果使用混合部署,即包由单管理员管理方法和App-V发布服务器提供,由双管理员或其他机制(例如组策略)进行管理,则无法确定哪个(现在可能是冗余的)软件包来自哪个源。在这种情况下,不会尝试清理。
  • 如果您不使用发布服务器,但在VDA上拥有由其他机制(例如SCCM,自定义脚本或第三方App-V管理解决方案)管理的软件包,则清理例程可能会删除仍然需要的软件包。在这种情况下,请将虚拟App-V管理服务器注册添加到VDA中,以防止尝试清理。

故障排除

标有”(双)“的问题只有在使用双管理方法时才会发生。

(双)在工作室导航窗格中选择配置> App-V发布时出现PowerShell连接错误。

  • 工作室管理员是否同时是App-V服务器管理员?工作室管理员必须属于App-V管理服务器上的"管理员"组才能与之通信。

(双)在Studio中指定App-V服务器地址时,测试连接操作返回错误。

  • 是否已启动App-V服务器?请发送平命令或检查IIS管理器;每个App-V服务器均应处于“已启动”或“正在运行”状态。
  • 是否已在App-V服务器上启用PowerShell远程处理?如果未启用,请参阅https://docs.microsoft.com/en-us/previous-versions/technet-magazine/ff700227 (v = msdn.10) ? redirectedfrom = MSDN
  • 工作室管理员是否同时是App-V服务器管理员?工作室管理员必须属于App-V管理服务器上的"管理员"组才能与之通信。
  • 是否已在App-V服务器上启用文件共享?在Windows资源管理器或"运行"命令中输入\ \ <App-V服务器FQDN>
  • App-V服务器是否具有与App-V管理员相同的文件共享权限?在App-V服务器上,在"存储的用户名和密码"中添加\\<App-V服务器FQDN>条目,并指定在App-V服务器上具有管理员权限的用户的凭据。有关指导,请参阅https://support.microsoft.com/kb/306541
  • App-V服务器是否位于Active Directory中?

    如果工作室计算机与App-V服务器分别位于不存在信任关系的不同Active Directory域中,请从工作室计算机上的PowerShell控制台运行winrm s winrm/Config/client ' @(TrustedHosts= " <App-V服务器FQDN>”)”

    如果TrustedHosts由GPO管理,将显示以下错误消息:"不能更改TrustedHosts的配置设置,因为使用受到策略控制。策略需要设置为"未配置"才能更改配置设置"。在这种情况下,请在 GPO 的 TrustedHosts 策略中添加 App-V 服务器名称条目(管理模板> Windows组件>窗口远程管理(WinRM) > WinRM客户端)。

(双)在将App-V应用程序添加到交付组时,发现失败。

  • 工作室管理员是否同时是App-V管理服务器管理员?工作室管理员必须属于App-V管理服务器上的"管理员"组才能与之通信。
  • App-V管理服务器是否正在运行?请发送平命令或检查IIS管理器;每个App-V服务器均应处于“已启动”或“正在运行”状态。
  • 两个App-V服务器是否均已启用PowerShell远程处理?如果未启用,请参阅https://docs.microsoft.com/en-us/previous-versions/technet-magazine/ff700227 (v = msdn.10) ? redirectedfrom = MSDN
  • 软件包是否具有适当的安全权限以供工作室管理员访问?

App-V应用程序不启动。

  • (双)发布服务器是否正在运行?
  • (双)App-V包是否具有适当的安全权限以供用户访问?
  • (双)在VDA上,确保Temp指向正确的位置,并且Temp目录具有足够的可用空间。
  • (双)在App-V发布服务器上,运行Get-AppvPublishingServer \ *以显示发布服务器的列表。
  • (双)在App-V发布服务器上,确保UserRefreshonLogon设置为“假”。
  • (双)在App-V发布服务器上,以管理员身份运行Set-AppvPublishingServer并将UserRefreshonLogon设置为False。
  • VDA上是否安装了受支持版本的App-V客户端?VDA是否已启用“启用包脚本”(启用软件包脚本)设置?
  • 在包含App-V客户端和共识的计算机的“注册表编辑器”(注册表编辑器)中,转到HKEY_LOCAL_MACHINE \ SOFTWARE \ \ Citrix \ AppV政策。确保AppVServers注册表项的值为以下格式:AppVManagementServer+元数据;PublishingServer(例如.http://xmas-demo-appv.blrstrm.com+0+0+0+1+1+1+0+1;http://xmas-demo-appv.blrstrm.com:8082)。
  • 在包含App-V客户端和共识的计算机或主映像上,检查PowerShell ExecutionPolicy是否已设置为“RemoteSigned”。微软提供的App-V客户端未进行签的名,而此ExecutionPolicy允许PowerShell运行未签名的本地脚本和cmdlet。请使用以下两种方法之一设置ExecutionPolicy:(1)以管理员身份输入cmdlet:Set-ExecutionPolicy RemoteSigned,或者(2)在“组策略”设置中,转到计算机配置>策略>管理模板> Windows组件Windows PowerShell > >启用脚本执行

如果这些步骤无法解决问题,则应启用并检查日志。

日志

与App-V配置相关的所有日志均位于C:\CtxAppvLogs中。应用程序启动日志位于 %LOCALAPPDATA%\Citrix\CtxAppvLogs 中。LOCALAPPDATA 会解析为已登录用户的本地文件夹。检查应用程序启动失败的用户的本地文件夹。

要启用App-V所使用的Studio和VDA日志,您必须具有管理员权限。此外,您还需要使用文本编辑器(例如记事本)。

要启用工作室日志,请执行以下操作:

  1. 创建文件夹C:\CtxAppvLogs。
  2. 转至C:\Program Files\Citrix\ StudioAppVIntegration\SnapIn\Citrix.Appv.Admin.V1。在文本编辑器中打开CtxAppvCommon.dll。配置,然后取消注释以下行:<添加键=“LogFileName”值= " C: \ CtxAppvLogs \ log.txt " / >
  3. 重新启动经纪服务以启动日志记录。

要启用vda日志,请执行以下操作:

  1. 创建文件夹C:\CtxAppvLogs。
  2. 转至C:\Program Files\Citrix\Virtual Desktop Agent。在文本编辑器中打开CtxAppvCommon.dll。配置,然后取消注释以下行:<添加键=“LogFileName”值= " C: \ CtxAppvLogs \ log.txt " / >
  3. 取消注释以下行并将值字段设置为1:<添加关键=“EnableLauncherLogs”价值= " 1 " / >
  4. 重新启动计算机以启动日志记录。
App-V