应用程序分层

创建平台层

平台层包括图层和分层图像在环境中完美运行所需的平台软件和设置。

您可以出于两个目的创建平台层:

  • 用于创建和打包层: 当你从与创建图层的虚拟机管理程序不同的虚拟机管理程序导入操作系统时,使用这种类型的平台层来创建应用程序层。

  • 用于发布分层图像: 在图像模板中使用这种类型的平台层,以便发布的分层图像在您的环境中完美运行。

用于打包图层或发布分层图像的平台层

使用下表来确定是否需要平台层。 如果需要,此表还显示了要在平台层上安装哪些软件。

  包装层 发布分层图像
需要平台层吗? 如果操作系统映像源自不同的虚拟机管理程序,则为必填项。 当应用程序需要代理或 SSO 软件时,您可以创建专门用于创建和更新该层的平台层。 发布到配置服务器并使用连接代理时为必填项。
要安装什么 虚拟机管理程序工具,当操作系统源自不同的虚拟机管理程序时。 SSO 或代理软件,必要时用于创建应用程序层。 配置和连接代理软件和设置。 如果发布到与操作系统起源不同的虚拟机管理程序,请包括虚拟机管理程序工具。
可供选择的值 选择您的虚拟机管理程序。 选择您的虚拟机管理程序、配置软件和连接代理。
你需要什么 虚拟机管理程序的安装程序 用于配置软件和连接代理的安装程序。

要包含在平台层中的其他软件和设置

除了上面指定的平台软件外,您还必须在平台层上包括以下设置和软件:

  • 域名加入
  • NVIDIA 驱动程序,如果适用
  • Citrix Receiver,用于单点登录组件
  • Citrix 工作空间环境管理 (WEM) 代理

    笔记:

    在部署的映像上使用 WEM 时,由 Citrix WEM 生成的 RSA 密钥会导致问题。 如果 RSA 密钥在完成图层时存在,则会出现一条消息,提示你必须删除 RSA 密钥文件,该文件以以下路径开头: C:\ProgramData\Microsoft\Crypto\RSA\ S-1-5-18\ fb8cc9e38d3e60ab60c17cdfd6d6d99_

  • 思杰UberAgent
  • 任何影响登录堆栈的软件,例如 Imprivata
  • Hyper-V 上的 Citrix Provisioning:需要旧版网络适配器才能启动 PXE
  • 微软系统中心配置管理器 (SCCM) 软件(如果你正在使用)

创建平台层的过程

创建平台层的步骤是:

  1. 在管理控制台中创建平台层。
  2. 连接到包装机并登录到包装机。
  3. 安装您的配置和连接代理软件。
  4. 该设备在与创建图层和发布图像的虚拟机管理程序不同的虚拟机管理程序上运行吗? 如果是,我们建议也安装虚拟机管理程序工具。
  5. 验证该层并关闭包装机。
    • 如果所选的连接器配置设置为使用 Offload Compositing,则该层将自动完成。
    • 如果连接器配置为 不是 设置为 Offload Compositing手动完成图层,如本文详细步骤所述。

何时更新平台层

平台层是最高优先级的层。 这对于部署映像至关重要,尤其是对于网络设备。 无论何时更新基础架构软件,都要向平台层添加一个版本。

更新操作系统层时,映像有时会出现启动问题。 要修复该问题,请使用新的操作系统层向平台层添加一个版本。 包装机启动后,关闭机器进行定稿。 平台层从新的操作系统层版本中收集关键组件,并在平台中对其进行更新,使其与操作系统版本相匹配。

要求

创建平台层时,软件安装程序必须位于包装机可以访问的位置。 例如,必须可以访问您的配置服务器和连接代理软件。 如果设备在不同的虚拟机管理程序上运行,还要包括虚拟机管理程序工具。

有关详细要求,请选择创建图层或发布图像的环境:

关于优化的一句话

平台层是最高优先级的层。 你可能会认为这是包含优化的最佳场所。 但是,在Windows 10上,删除Windows应用程序的优化仅适用于操作系统层。 Windows 应用程序与 Windows 应用商店集成在一起,只能在操作系统层进行修改。

Citrix 提供了一款名为 Citrix Optimizer的出色优化工具。 我们建议使用此实用程序,而不是 App Layering 附带的优化器,因为 Citrix 优化器通常可以在需要时反向优化。

加快用户登录速度。 使用网络用户帐户登录,然后重新启动桌面。 然后,以管理员身份登录,删除创建的配置文件。 当第一个网络用户登录时,一些系统文件会更新,然后登录性能通常会提高。

启动新的平台层

要创建平台层,请执行以下步骤:

  • 使用 创建平台层准备图层。
  • 在您的环境中部署一台包装机。
  • 安装工具并为您的环境配置设置。
  • 完成图层。

从操作栏开始,按照以下步骤操作:

  1. 选择 图层 > 平台层。 然后选择 创建平台层

  2. 在 “图层详细信息” 选项卡中,输入 图层名称版本,这两个值均为必填值。 或者,您也可以输入其他值。

  3. 在 “版本详细信息” 选项卡中:

    1. (必需)输入新版本名称。 例如,输入软件版本或其他识别信息。
    2. 如果您要向现有图层添加版本, Base Version 字段允许您选择使用哪个版本作为起点。 默认选择是最新版本。
  4. 在操作系统层选项卡中,选择要与该平台层关联的操作系统层。

  5. 在 “连接器” 选项卡中,为要创建此层的平台选择 连接器配置

  6. 平台类型 选项卡中,选择 此平台将用于发布分层图像,或 此平台将用于打包。 然后选择要在其中发布分层映像的虚拟机管理程序、配置软件和连接代理。 注意: 如果你不是 使用配置或连接代理,请为每个选项选择None** 。

  7. 在 “打包磁盘” 选项卡中,为打包磁盘输入 文件名 。 该磁盘用于要安装工具的包装机(虚拟机)。

  8. 在 “图标分配” 选项卡中,选择要分配给图层的图标。 此图标代表 “图层” 模块中的图层。

    • 要使用现有图像,请在图像框中选择一张图像。
    • 要导入新图像,请单击 浏览 并选择 PNG 或 JPG 格式的图像。
    • 如果该图层使用提供的图标之一和选择了 Offload Compositing 的连接器,则包装机将根据该图层的内容分配一个图标。
  9. 在 “确认并完成” 选项卡中,查看应用程序层的详细信息,必要时输入注释,然后单击 Create Layer。 您输入的任何评论都会显示在 审计历史记录信息 视图中。

  10. 选择 任务 页面,然后单击 打包磁盘 任务。 单击信息图标可显示完整的任务描述。

    创建打包盘后,任务栏会显示打包磁盘在您的环境中的位置。

接下来,您可以为您的图层部署打包机。

部署包装机

App Layering 系统会在连接器配置中定义的位置创建一台包装机。 打包机是一个临时虚拟机,您可以在其中安装该层的软件。 完成图层后,包装机将被移除。

XenServer、Hyper-V、Nutanix AHV、VMware vSph

设备在连接器配置中定义的位置创建包装机。

  1. 前往 App Layering 管理控制台,选择 任务 页面。
  2. 打开创建平台层任务以获取包装机的名称。
  3. 登录您的虚拟机管理程序管理控制台,例如:XenServer、Azure、Hyper-V、Nutanix 或 VMware。
  4. 在虚拟机管理器控制台中,导航到打包机。 如果包装机尚未开机,请立即开机。

适用于 Hyper-V 的 Citrix 配置:配置两个网卡

使用双网卡并运行适用于 Hyper-V 的 Citrix Provisioning 时,必须在 平台层的每个新版本中按如下方式配置网卡。

安装好配置软件并完成所需的重启后:

  1. 在打包机上打开管理命令提示符。
  2. 运行命令: ipconfig /all
  3. 将流媒体网卡(Hyper-V 中的传统网络适配器)的 IP 地址与正确的适配器名称相匹配。
  4. 续订流媒体网卡上的 DHCP 租约。
  5. 再次在管理命令提示符下运行 ipconfig /release *adapter-name* 然后运行 ipconfig /renew *adapter-name*。 此命令强制 App Layering 驱动程序选择此适配器作为 “主网卡”。
  6. 运行 Shutdown for Finalize 并像往常一样完成图层。

重要的:

如果您为 “完成” 选择 “关闭”,但随后出于任何原因需要重新开启计算机,则必须重新运行 releaserenew 命令。

天蓝色

  1. 前往 App Layering 管理控制台并选择 任务 页面。 打开 创建应用程序层 任务,然后单击 “信息” 图标以查看详细信息。
  2. 使用任务详细信息中的链接导航到 Azure 中的打包机。 自定义部署面板打开。
  3. 登录 Azure 门户 (https://portal.azure.com)。
  4. 设置 Azure 参数。
    • 打包机名称-必须符合 Azure 虚拟机名称要求。
    • 大小 ― 虚拟机大小。
    • 虚拟网络和子网-用于部署包装机。 重要:确保 资源组位置 的值与您在连接器配置中配置的 存储帐户位置 相匹配。 如果这些位置不一样,包装机将无法部署。 如果部署失败,则可以再次将链接粘贴到浏览器中,然后重新开始。
  5. 包装机开机后,您可以安装要包含在图层中的应用程序。

任何其他虚拟机管理程序(通过网络文件共享)

  1. 在网络文件共享的以下目录中找到打包磁盘: \ Unidesk\ 包装盘

  2. 将打包磁盘复制到虚拟机管理程序上的其他位置。 将磁盘放在另一个位置可以为创建新虚拟机时虚拟机管理程序生成的文件留出空间。

    重要:在磁盘准备好完成之前,不要 ** 将磁盘复制到 Finalize 文件夹。 Finalize 文件夹中的磁盘无法连接到您接下来要创建的新虚拟机。

  3. 使用打包磁盘作为启动磁盘创建虚拟机。

  4. 打开包装机电源。

打包机开机后,可以在该层中安装平台工具。

在包装机上安装平台工具

接下来,为发布分层图像的平台安装软件。 平台工具包括目标环境中分层映像所需的配置和连接代理软件。 请记住,完成图层时软件的状态就是图像使用的状态。

  1. 远程登录到包装机。 请务必使用您在创建操作系统时使用的用户帐户登录。
  2. 安装分层映像配置为运行的工具。 例如,包括您的配置、连接代理和虚拟机管理程序工具。 不要忘记您的驱动程序、启动级应用程序和任何必需的文件。
  3. 如果安装需要重新启动系统,请手动重新启动。 包装机不会自动重启。
  4. 确保启动映像时包装机处于您想要的状态:
    • 如果您安装的工具需要任何安装后设置或注册,请立即完成这些步骤。
    • 删除不想包含在包装机上的任何设置、配置、文件、映射驱动器或应用程序。
  5. (可选)要在部署到 MCS 之前自定义从 ELM 部署的映像,请执行以下步骤:
    1. 在操作系统版本 2308 及更高版本中升级您的主工具。
    2. 然后,创建文件: c:\windows\setup\scripts\kmsdir\Admin_Controlled_Shutdown.txt

      笔记:

      文件内容并不重要。

    3. 从 ELM 部署映像时,启动的映像将保持运行状态,以便您可以进行自定义。 重新启动不会影响计算机的状态。
    4. 完成自定义后,运行以下命令: c:\windows\setup\scripts\kmsdir\CompleteDeployment.cmd. 此时,计算机将关闭并完成部署任务。 有了这个,你可以将机器部署到 MCS。

验证该层并关闭包装机

将工具安装到包装机上后,您可以验证该层是否已准备就绪,可以完成。 任何必要的安装后处理都需要完成。 例如,可能需要完成重启或微软 ngen 进程。

要验证未完成的进程是否已完成,请运行 Shutdown for Finalize 工具。 在包装机桌面上查找 Shutdown For Finalize 图标。

关闭包装机这样你就可以完成该层

  1. 如果您未登录打包机,请使用操作系统层创建期间设置的帐户进行远程登录。
  2. 双击 为完成而关闭 图标。 命令行窗口显示详细说明图层验证过程的消息。
  3. 如果有未完成的操作,系统会提示您完成该过程。 例如,如果必须完成微软 ngen 操作,则可以加快 ngen 操作,详见定稿过程中 图层完整性消息部分。
  4. 待处理操作完成后,再次双击 Shutdown for Finalize 图标。

该层现已准备就绪,可以完成。

  • 如果所选的连接器配置设置为 Offload Compositing,则该层将自动完成。
  • 如果你没有使用 Offload Compositing手动完成图层

定稿过程中的层完整性消息

以下层完整性消息告诉您在该层准备完成之前必须完成哪些排队操作:

  • A RunOnce script is outstanding - check and reboot the packaging machine.
  • A post-installation reboot is pending - check and reboot the packaging machine.
  • A Microsoft ngen operation is in progress in the background. - An MSI install operation is in progress - check the packaging machine.
  • A reboot is pending to update drivers on the boot disk - check and reboot the packaging machine.
  • A Microsoft ngen operation is needed.
  • 软件中心客户端配置为运行,但是 SMSCFG.INI 仍然存在。 要了解有关在虚拟环境中部署 SCCM 的更多信息,请参阅微软 TechNet 的文章 在 XenDesktop VDI 环境中实施 SCCM

有关层完整性消息的含义以及如何调试它们的详细信息,请参阅 在 Citrix App Layering 4.x 及更高版本中调试层完整性问题

您无法通过关闭计算机来绕过层完整性消息。 App Layering 软件会将您返回到包装机上,直到流程完成为止。

如果微软 ngen 操作正在进行中,你可以尝试加快操作,如下一节所述。

如有必要,加快微软 Ngen.exe 的运营

安装完所有软件更新后,必须允许 Ngen.exe 实质上将 .NET 字节码重新编译成原生映像,并构造注册表项来管理它们。

Ngen.exe 可执行文件是微软原生图像生成器,它是 .NET 系统的一部分。 Windows 根据正在安装的软件以及 Windows 在配置中检测到的内容来确定何时运行 Ngen.exe

重要:Ngen.exe 运行时,你必须让它完成。 中断的 Ngen.exe 操作可能会使你在 .NET 系统中出现无法运行的 .NET 程序集或其他问题。

通常, Ngen.exe 是一种后台操作,在有前台活动时会暂停。 要加快 Ngen.exe 操作,请将任务置于前台完成操作。

要将任务置于前台,请执行以下操作:

  1. 以管理员身份打开命令提示符。
  2. 前往 Microsoft.NET\ Framework 目录查看当前正在使用的版本:

    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX

  3. 输入以下 Ngen.exe 命令来运行所有排队的项目。 此命令在构建程序集之前处理排队的组件安装。

    ngen eqi 3

    Ngen.exe 任务在命令提示符下移至前台并列出正在编译的程序集。 如果你看到编译消息也没关系。

    你可以使用 任务管理器 来查看 MSCORSVW.EXE 的实例是否正在运行。 如果是,请允许它完成,或者运行 ngen eqi 3

警告: 不要重新启动以停止任务。 允许任务完成!

  1. 确保所有 Ngen.exe 进程都已运行至完成。
  2. 完成后,使用桌面上提供的 Shutdown For Finalize 快捷方式关闭虚拟机。

手动完成图层

当您在其中一个经过测试的虚拟机管理程序上使用连接器时,层完成速度最快。 详细信息请参阅下一节。

您还可以使用网络文件共享在其他虚拟机管理程序上完成一个图层。 请参阅本文的最后一部分。

XenServer、Azure、Hyper-V、Nutanix AHV、VMware vSp

现在该层已经过验证并关闭,可以完成了。

Hyper-V:

如果您使用选择了 Offload Compositing 的连接器,则此定稿过程将自动完成,您无需执行这些手动步骤。

  1. 返回管理控制台。
  2. 选择 图层 > 平台层,然后在你准备的 版本信息 选项卡上选择图层版本。
  3. 单击 Finalize 完成图层创建。
  4. 监控任务栏以验证操作是否成功完成。

验证该层后,包装机将被移除,以最大限度地减少所使用的存储空间。

任何其他虚拟机管理程序(通过网络文件共享)

现在,该层已通过验证并关闭,可以完成了。

  1. 将打包磁盘从包含打包机文件的文件夹复制到网络文件共享上的 Finalize 文件夹: \ Unidesk\ 敲定

  2. 返回管理控制台。

  3. 选择 图层 > 平台层

  4. 在操作栏中选择 Finalize

  5. 监控任务栏以验证操作是否成功完成以及该层是否可部署。