App Layering

更新层

在操作系统、平台或应用程序层中更新软件的步骤几乎相同。将版本添加到层,在打包计算机上安装升级或修补程序,验证,然后完成层。更新后,您将部署新层版本,该版本因层类型而异。

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

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

将版本添加到层

例如,要向操作系统层添加版本,请执行以下操作:

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

“打包磁盘已发布。虚拟机 ‘<… >’ 可以在数据中心 ‘<… >’ 的文件夹 ‘<… >’ 中找到。打开此虚拟机电源以安装应用程序。安装完成后,请先关闭虚拟机电源,然 单击操作栏上的“完成”。“

接下来,您可以为此操作系统层版本部署打包计算机。

将打包计算机部署到 Hypervisor

打包计算机是一个虚拟机,您可以在其中安装要包含在层中的更新或应用程序。打包计算机是一个临时虚拟机,在操作系统层完成后将被删除。

任务描述包含导航到 Hypervisor 中创建此层打包计算机的位置的指示。

  1. 要在 Hypervisor 中创建打包计算机,请从步骤 2 中显示的扩展打包磁盘任务开始。
  2. 登录您的 Hypervisor 客户端。
  3. 返回管理控制台,使用展开的打包磁盘任务中的说明导航到打包计算机。

安装操作系统更新

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

接下来,关闭包装计算机并验证层是否已准备好完成。

注意:

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

验证层并关闭包装机

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

要验证任何未完成的进程是否已完成,您可以运行“关闭完成”工具(如下图标),该工具将显示在打包计算机的桌面上。

要使用“关闭以便最终完成”工具:

  1. 如果您未登录到打包计算机,请以创建计算机的用户身份进行远程登录。
  2. 双击“关闭以完成”图标。命令行窗口显示详细说明层验证过程的消息。
  3. 如果在完成层之前必须完成的未完成操作,系统会提示您完成该操作。例如,如果 Microsoft ngen 操作必须完成,则可以尝试加快 ngen 操作,详情如下所述。
  4. 任何待处理的操作完成 后,再次双击“关闭 以完成”图标。这会关闭包装机。

该层已准备就绪。

如果您选择的连接器配置设置为“卸载合成”,则层将自动定型。否则,下一步是手动完成层,如下一步所述。

层完整性消息

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

  • 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 配置为可以运行,但是 SMSCFG.INI 仍然存在。要了解有关在虚拟环境中部署 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. 如果使用 .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. 当所有操作完成 ,请使用桌面上可用的“关闭以完成”快捷方式关闭虚拟机。

手动完成层

创建打包计算机并安装任何应用程序或更新后,您就可以完成该层。

注意:当您完成操作系统层的新版本时,系统会删除打包计算机,以免产生更多成本。

当层准备完成时:

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