App Layering

创建平台层

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

您可以为两种目的创建平台层:

  • 用于创建和打包层: 当您从创建层的虚拟机管理程序以外的虚拟机管理程序导入操作系统时,请使用此类型的平台层来创建应用程序层。

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

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

使用下表确定是否需要平台层。此表还显示了在平台层上安装的软件(如果需要)。

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

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

除了上述平台软件之外,您还必须在平台层包含以下设置和软件:

  • 域加入
  • NVIDIA 驱动程序(如果适用)
  • Citrix Receiver,用于单点登录组件
  • Citrix Workspace Environment Management(WEM) 代理

    注意:

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

  • 影响登录堆栈的任何软件,例如 Imprivata
  • Hyper-V 上的 Citrix Provisioning:需要传统网络适配器才能启动 PXE
  • Microsoft System Center Configuration Manager (SCCM) 软件,如果您正在使用

创建平台层的过程

创建平台层的步骤包括:

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

何时更新平台层

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

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

要求

创建平台层时,软件安装程序必须位于打包计算机可以访问的位置。例如,您的 Provisioning 服务器和连接代理软件必须是可访问的。如果设备正在其他 Hypervisor 上运行,还应包括 Hypervisor 工具。

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

关于优化的词

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

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

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

启动新的平台层

要创建平台层,请按照以下步骤操作:

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

请按照以下步骤操作栏中的步骤操作:

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

  2. 在层详细信息选项卡中,输入 层名称版本,这两个值均为必填值。(可选)还可以输入其它值。

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

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

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

  6. 在“平台类型”选项卡中,选择“此平台将用于发布分层映像”或“此平台将用于打包”。然后选择要在其中发布分层映像的 Hypervisor、Provisioning 软件和连接代理。 注意: 如果您 没有 使用预配或连接代理,请为每个选项选择“”。

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

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

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

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

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

接下来,您可以为层部署打包计算机。

部署打包计算机

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

Citrix Hypervisor、Hyper-V、Nutanix AHV、VMware vSphere

设备将在连接器配置中定义的位置创建打包计算机。

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

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

使用双网卡并运行适用于 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. 运行 关闭以完成 并像往常一样完成层。

重要:

如果您选择“关闭”作为“完成”,但随后由于任何原因需要重新打开计算机,则必须重新运行 释放续订 命令。

Azure

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

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

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

  2. 将打包磁盘复制到 Hypervisor 上的单独位置。在创建新虚拟机时,将磁盘放在另一个位置可以为 Hypervisor 生成的文件提供空间。

    重要提示:在磁盘完成定版之前,请 将磁盘复制到 Finalize 文件夹。“完成”文件夹中的磁盘无法附加到下一步要创建的新虚拟机。

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

  4. 打开打包计算机的电源。

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

在打包计算机上安装平台工具

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

  1. 远程登录到包装机。请务必使用您在创建操作系统时使用的用户帐户登录。
  2. 安装分层映像配置为运行的工具。例如,包括您的 Provisioning、连接代理和 Hypervisor 工具。不要忘记您的驱动程序、引导级应用程序和任何必需的文件。
  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。

验证层并关闭包装机

在包装计算机上安装工具后,您可以验证层是否已准备好完成。所有必需的安装后处理都需要完成。例如,可能需要完成重启或 Microsoft ngen 进程。

要验证未完成的进程是否已完成,请运行 关闭以完成 工具。在包装机的桌面上查找“关闭以完成 操作”图标。

关闭打包计算机,以便您可以完成层

  1. 如果您没有登录到打包机,请使用在创建操作系统层时设置的帐户进行远程登录。
  2. 双击“关闭以完成”图标。命令行窗口显示详细说明层验证过程的消息。
  3. 如果存在未完成的操作,系统将提示您完成该过程。例如,如果必须完成 Microsoft ngen 操作,则可以加快 ngen 操作,如最终完成过程中的层完整性消息部分所述。
  4. 待处理的操作完成后,再次双击“关闭以完成 操作”图标。

层现已准备好完成。

  • 如果选定的连接器配置设置为“卸载合成”,则层将自动定型。
  • 如果不使用“卸载合成”, 请手动完成层

最终确定过程中的层完整性消息

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

  • 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.
  • Software Center Client is configured to run, but the SMSCFG.INI is still present. 要了解有关在虚拟环境中部署 SCCM 的更多信息,请参阅 Microsoft TechNet 的文章“在 XenDesktop VDI 环境中实现 SCCM”。

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

不能通过关闭计算机来绕过层完整性消息。在流程完成之前,App Layering 软件会将您送回包装机。

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

如有必要,加快 Microsoft Ngen.exe 操作

安装完所有软件更新后,您必须允许 Ngen.exe 基本上将 .NET 字节码重新编译为本机映像并构建注册表项来管理它们。

Ngen.exe 可执行文件是 Microsoft Native Image Generator,它是 .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 <!--NeedCopy-->

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

    ngen eqi 3 <!--NeedCopy-->

    Ngen.exe 任务在命令提示符下移至前台,并列出正在编译的程序集。如果您看到编译消息,这是可以的。

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

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

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

手动完成层

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

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

Citrix Hypervisor、Azure, Hyper-V、Nutanix AHV、VMware vSphere

现在层已经验证并关闭,它已经准备好完成。

Hyper-V:

如果您使用的是选择了“卸载合成”的 连接器,则此定稿过程将自动化,您不必执行这些手动步骤。

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

一旦层经过验证,就会拆除包装机,以最大限度地减少使用的存储空间。

任何其他 Hypervisor(通过网络文件共享)

现在,层已经验证并关闭,它已经准备好完成。

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

  2. 返回到管理控制台。

  3. 选择层 > 平台层

  4. 在操作栏中选择完成

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