更新层
更新操作系统层、平台层或应用程序层中的软件的步骤几乎相同。您需要向层添加版本,在打包机上安装升级或修补程序,进行验证,然后完成层。更新后,您将部署新的层版本,具体取决于层的类型。
平台层是优先级最高的层,对于映像部署至关重要,尤其是在设备(例如您的网络)方面。每当您更新基础架构软件时,都必须向平台层添加新版本。
您可以使用新的操作系统层作为基础向平台层添加版本。打包机启动后,关闭机器以完成操作。平台层会从新的操作系统层版本中收集关键组件,并在平台中更新它们,使其与操作系统版本匹配。
向层添加版本
例如,要向操作系统层添加版本:
- 在 Citrix App Layering™ Management Console 中,选择 “层”>“操作系统层”
- 选择一个操作系统层,然后单击“版本信息”选项卡上的“添加版本”。
- 在版本详细信息中:
- 对于“基础版本”,选择用作新层版本基础的版本。默认值为最新版本。
- 输入“新版本”的名称。这可以是操作系统版本或其他标识信息。
- 选择一个“连接器配置”,用于创建层的虚拟机管理程序。
- 输入打包磁盘的文件名,如果您使用的是设备的共享文件而不是连接器配置,请选择要使用的磁盘格式。此磁盘用于打包机(虚拟机),您将在其中安装应用程序。
- 验证您的设置,然后单击“添加版本”。这将运行一个任务来创建操作系统版本。任务完成后,它会显示“需要操作”状态。当您选择任务并单击“查看详细信息”时,将显示以下文本:
“打包磁盘已发布。虚拟机“<…>”可在数据中心“<…>”的文件夹“<…>”中找到。打开此虚拟机以安装您的应用程序。安装完成后,在单击操作栏上的“完成”之前关闭虚拟机。”
接下来,您可以为该操作系统层版本部署打包机。
将打包机部署到虚拟机管理程序
打包机是一个虚拟机,您可以在其中安装要包含在层中的更新或应用程序。打包机是一个临时虚拟机,在操作系统层完成后删除。
任务说明包含导航到虚拟机管理程序中已创建此层打包机的位置的说明。
- 要在虚拟机管理程序中创建打包机,请从步骤 2 中所示的展开的打包磁盘任务开始。
- 登录到您的虚拟机管理程序客户端。
- 返回管理控制台,使用展开的打包磁盘任务中的说明导航到打包机。
安装操作系统更新
- 远程登录到打包机。请务必登录到用于创建操作系统的用户帐户。
- 安装您希望包含在新操作系统层版本中的任何更新或应用程序,例如 Windows 更新或防病毒应用程序。
- 如果应用程序安装需要系统重新启动,请手动重新启动它。打包机不会自动重新启动。
- 确保打包机处于您希望用户使用的状态:
- 如果您安装的应用程序需要任何安装后设置或应用程序注册,请立即完成这些步骤。
- 删除您不希望包含在打包机上的任何设置、配置、文件、映射驱动器或应用程序。
接下来,您将关闭打包机并验证层是否已准备好完成。
注意:
当您将 Windows 10 从一个主要版本升级到另一个主要版本(例如,从 1703 升级到 1709)时,以前的 Windows 安装将保留在 C:\Windows.old 文件夹中。在 App Layering 中,您不得删除此文件夹。我们的软件需要在升级完全完成后将驱动程序和其他文件从 Windows.old 复制到 Windows。当您完成操作系统层时,我们将清理 Windows.old。
验证层并关闭打包机
下一步是验证层是否已准备好完成。要准备好完成,任何所需的安装后处理(例如,重新启动或 Microsoft ngen 进程)都必须完成。
要验证任何未完成的进程是否已完成,您可以运行“关机以完成工具”(如下所示的图标),该工具显示在打包机的桌面上。
要使用“关机以完成工具”:
- 如果您未登录到打包机,请以创建机器的用户身份远程登录。
- 双击“关机以完成”图标。命令行窗口将显示详细说明层验证过程的消息。
- 如果在层可以完成之前必须完成未完成的操作,系统将提示您完成它。例如,如果 Microsoft
ngen操作必须完成,您可以尝试加快ngen操作,如下所述。 - 所有挂起的操作完成后,再次双击“关机以完成”图标。这将关闭打包机。
层已准备好完成。
如果您选择的连接器配置设置为“卸载合成”,则层将自动完成。否则,下一步是手动完成层,如以下过程所述。
层完整性消息
以下层完整性消息会告诉您在层准备好完成之前必须完成哪些排队操作:
-
RunOnce脚本未完成 - 请检查并重新启动打包机。 - 安装后重新启动挂起 - 请检查并重新启动打包机。
- Microsoft
ngen操作正在后台进行。 - MSI 安装操作正在进行中 - 请检查打包机。
- 重新启动挂起以更新启动磁盘上的驱动程序 - 请检查并重新启动打包机。
- 需要 Microsoft
ngen操作。 - 软件中心客户端已配置为运行,但 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 本机映像生成器,它是 .NET 系统的一部分。Windows 根据正在安装的软件以及 Windows 在配置中检测到的内容来确定何时运行 Ngen.exe。
重要: 当
Ngen.exe正在运行时,您必须让它完成。中断的Ngen.exe操作可能会导致 .NET 程序集无法正常工作或 .NET 系统中出现其他问题。
通常,Ngen.exe 是一个后台操作,在前台活动时暂停。如果您想加快 Ngen.exe 操作,可以将任务带到前台,以尽快完成它。
要将任务带到前台:
- 以管理员身份打开命令提示符。
-
转到
Microsoft.NET\Framework目录以获取当前使用的版本:cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy--> -
如果使用 .NET Framework 3 或更高版本,输入以下
Ngen.exe命令以运行所有排队的项目。此命令在构建程序集之前处理排队的组件安装。ngen eqi 3 <!--NeedCopy-->Ngen.exe任务移动到命令提示符的前台,并列出正在编译的程序集。如果看到编译消息,这是正常的。确保所有
Ngen.exe进程都已运行完成。您可以使用任务管理器查看MSCORSVW.EXE实例是否正在运行。如果正在运行,请允许它完成,或运行ngen eqi 3。注意: 请勿重新启动以停止任务。让任务完成!
-
如果使用 .NET Framework 2 或更早版本,输入以下
Ngen.exe命令以运行排队的项目。``` ngen update /force
这将 `ngen` 任务带到命令提示符的前台,并列出正在编译的程序集。 >**注意:** >如果看到**“编译失败”**消息,这是正常的。 >查看任务管理器,看是否有 MSWORD.EXE 实例正在运行。如果正在运行,您必须允许它完成,或重新运行 `ngen update /force`。请勿重新启动以停止任务。让任务完成。 通过以管理员身份打开命令提示符并运行此命令来检查 `Ngen.exe` 操作的状态: ```ngen queue status<!--NeedCopy-->注意: 请勿重新启动以停止任务。让任务完成!
- 所有操作完成后,使用桌面上可用的“关机以完成”快捷方式关闭虚拟机。
手动完成层
创建打包机并安装任何应用程序或更新后,您可以完成层。
注意: 当您完成操作系统层的新版本时,系统会删除打包机,以免产生更多成本。
当层准备好完成时:
- 返回管理控制台。
- 在“层”模块中,选择该层。
- 在操作栏中选择“完成”。
- 监视任务栏以验证操作是否成功完成以及层是否可部署。