更新层

更新操作系统层、平台层或应用程序层中软件的步骤几乎相同。您需要向层中添加一个版本,在打包计算机上安装升级或修补程序,进行验证,然后完成该层。更新后,您将部署新的层版本,具体取决于层的类型。

平台层是优先级最高的层,对于映像部署至关重要,尤其是在设备(例如您的网络)方面。每当您更新基础架构软件时,都必须向平台层添加新版本。

您使用新的操作系统层作为基础,向平台层添加一个版本。打包计算机启动后,请关闭计算机以进行最终确定。平台层从新的操作系统层版本中收集关键组件,并在平台中对其进行更新,使其与操作系统版本匹配。

向层中添加版本

例如,要向操作系统层添加版本:

  1. 在 Citrix App Layering™ 管理控制台中,选择 层 > 操作系统层
  2. 选择一个操作系统层,然后在 版本信息 选项卡上单击 添加版本
  3. 在版本详细信息中:
    1. 对于 基本版本,选择用作新层版本基础的版本。默认值为最新版本。
    2. 输入 新版本 的名称。这可以是操作系统版本或其他标识信息。
  4. 为创建层的管理程序选择一个 连接器配置
  5. 输入打包磁盘的文件名,如果您使用的是设备的共享文件而不是连接器配置,请选择要使用的磁盘格式。此磁盘用于安装应用程序的打包计算机(虚拟机)。
  6. 验证您的设置,然后单击 添加版本。这将运行一个任务来创建操作系统版本。任务完成后,它会显示 需要操作 状态。当您选择任务并单击 查看详细信息 时,将显示以下文本:

“打包磁盘已发布。虚拟机“<…>”位于数据中心“<…>”的文件夹“<…>”中。打开此虚拟机以安装您的应用程序。安装完成后,在单击操作栏上的 完成 之前关闭虚拟机。”

接下来,您可以为该操作系统层版本部署一个打包机。

将打包机部署到您的虚拟机管理程序

打包机是一个虚拟机,您可以在其中安装要包含在层中的更新或应用程序。打包机是一个临时虚拟机,一旦操作系统层定稿,它就会被删除。

任务描述中包含指引,指示您如何导航到您的虚拟机管理程序中已为该层创建打包机的位置。

  1. 要在您的虚拟机管理程序中创建打包机,请从步骤 2 中所示的扩展打包磁盘任务开始。
  2. 登录到您的虚拟机管理程序客户端。
  3. 回到管理控制台,请按照已展开的打包磁盘任务中的说明,导航到打包机。

安装操作系统更新

  1. 远程登录到打包机。请务必登录到您用于创建操作系统的用户帐户。
  2. 安装您希望包含在新操作系统层版本中的任何更新或应用程序,例如 Windows 更新、Windows 应用商店应用更新、Microsoft Edge 更新或防病毒应用程序。
  3. 如果应用程序安装需要系统重启,请手动将其重启。打包机不会自动执行重启操作。
  4. 请确保打包机处于您希望用户使用时所呈现的状态:
    1. 如果您安装的应用程序需要任何安装后设置或应用程序注册,请立即完成这些步骤。
    2. 删除您不希望包含在打包机上的任何设置、配置、文件、映射驱动器或应用程序。

接下来,关闭打包机并验证该层是否已准备好定稿。

注意:

当您将 Windows 10 从一个主要版本升级到另一个主要版本时(例如,从 1703 升级到 1709),以前的 Windows 安装会保留在 C:\Windows.old 文件夹中。在 App Layering 中,您不得删除此文件夹。升级完全完成后,我们的软件需要将驱动程序和其他文件从 Windows.old 复制到 Windows。当您完成操作系统层时,我们将清理 Windows.old。

对图层进行验证,并关闭打包机

下一步是验证层是否已准备好进行最终确定。为了准备好进行最终确定,任何所需的安装后处理(例如,重新启动或 Microsoft ngen 进程)都必须完成。

要验证所有未完成的进程是否已完成,您可以运行“Shutdown For Finalize”工具(图标如下所示),该工具显示在打包机的桌面上。

要使用完成关机工具:

  1. 如果您未登录打包机,请以创建该计算机的用户身份远程登录。
  2. 双击“Shutdown For Finalize”图标。此时会显示一个命令行窗口,其中包含有关层验证过程的详细消息。
  3. 如果存在必须在层最终确定之前完成的未完成操作,系统会提示您完成该操作。例如,如果 Microsoft ngen 操作必须完成,您可以尝试加快 ngen 操作,详情如下。
  4. 所有挂起的操作完成后,再次双击“Shutdown For Finalize”图标。这将关闭打包机。

该层已准备好进行最终确定。

如果您选择的连接器配置设置为 Offload Compositing,该层将自动最终确定。否则,下一步是手动最终确定该层,如以下过程所述。

层完整性消息

以下层完整性消息会告诉您在层准备好进行最终确定之前必须完成哪些排队操作:

  • A RunOnce script is outstanding - please check and reboot the Packaging Machine.
  • A post-installation reboot is pending - please check and reboot the packaging machine.
  • A Microsoft ngen operation is in progress in the background. - An MSI install operation is in progress - please check the packaging machine.
  • A reboot is pending to update drivers on the boot disk - please 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. To learn more about deploying SCCM in a virtual environment, see the Microsoft TechNet article, [Implementing SCCM in a XenDesktop VDI environment](https://social.technet.microsoft.com/wiki/contents/articles/23923.implementing-sccm-in-a-xendesktop-vdi-environment.aspx).

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

您无法通过关闭计算机来绕过图层完整性消息。App Layering 软件会停止运行,并将您返回到打包计算机,直到所有进程完成。

如果 Microsoft ngen 操作正在进行中,您可能可以加快其速度,具体方法见下一节。

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

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

Ngen.exe 是 Microsoft 本机映像生成器,它是 .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. 如果使用 .NET Framework 3 或更高版本,输入以下 Ngen.exe 命令以运行所有排队的项。此命令在构建程序集之前处理排队的组件安装。

    ngen eqi 3 <!--NeedCopy-->

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

    确保所有 Ngen.exe 进程都已运行完成。您可以使用任务管理器查看是否有 MSCORSVW.EXE 的实例正在运行。如果正在运行,请让它完成,或者运行 ngen eqi 3

    注意: 请勿通过重新启动来停止任务。让任务完成!

  4. 如果使用 .NET Framework 2 或更早版本,输入以下 Ngen.exe 命令以运行排队的项。

    ``` ngen update /force

    
    这会将 ngen 任务带到命令提示符的前台,并列出正在编译的程序集。
    
    >**注意:**
    如果看到**编译失败**消息,这是正常的。
    查看任务管理器,看是否有 MSWORD.EXE 的实例正在运行。如果正在运行,您必须让它完成,或者重新运行 'ngen update /force`。请勿通过重新启动来停止任务。让它完成。
    
    通过打开以管理员身份运行的命令提示符并运行此命令来检查 `Ngen.exe` 操作的状态:```ngen queue status<!--NeedCopy-->
    

    注意: 请勿通过重新启动来停止任务。让任务完成!

  5. 当所有操作完成后,使用桌面上的 Shutdown For Finalize 快捷方式关闭虚拟机。

手动最终完成层

一旦打包机创建完成并安装了任何应用程序或更新,您就可以最终确定该层。

注意:当您最终确定操作系统层的新版本时,系统会删除打包机,以免产生更多费用。

当层准备好最终确定时:

  1. 返回到管理控制台。
  2. 在“层”模块中,选择该层。
  3. 在操作栏中选择 Finalize
  4. 监视任务栏以验证操作是否成功完成以及该层是否可部署。