在 Nutanix 中准备用于分层的操作系统映像

Last published : Oct 24, 2026
本主题介绍如何准备干净的操作系统映像以导入新的操作系统层。开始之前,请确保您满足要求。在准备映像时,如果您认为操作耗时过长,可以在必要时加快 Microsoft Ngen.exe 操作。
如果使用 Windows 10 且未运行 PVS、计算机创建或 View,您可以通过删除 Windows 10 内置应用程序来加快桌面启动时间。但是,我们建议在操作系统层的新版本上删除应用程序,而不是在操作系统映像本身中删除。
注意:
在 Nutanix 中,请 勿 使用无人参与文件。如果存在无人参与文件,App Layering 软件会将其删除,因为它在 Nutanix 中既不必要也不推荐使用。

在虚拟机上安装操作系统

作为此过程的一部分,您可以设置密钥管理服务 (KMS) 激活。
注意: 将映像发布到同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中会导致激活问题。
  1. 登录 Prism 控制台。
  2. 选择 任务 > 虚拟机,并切换到表格视图以查看现有虚拟机。
  3. 单击右上角的 +创建虚拟机,并输入新虚拟机的详细信息:
    1. 输入名称并添加描述。
    2. 选择 VCPU 数量。
    3. 设置每个 CPU 的核心数。
    4. 设置内存。
    5. 选择 磁盘,并创建一个包含三个磁盘的虚拟机。第一个 CD-ROM 是操作系统的 ISO。第二个 CD-ROM 用于 Nutanix VIRTIO 驱动程序,这些驱动程序允许 Nutanix 虚拟机访问安装操作系统的磁盘。最初分配了一个 CD-ROM。
      1. 编辑已分配的 CD-ROM 的值:
      2. 对于“操作”,选择“从 ADSF 文件克隆”。
      3. 对于“总线类型”,选择 IDE。
      4. 输入 Windows ISO 的路径。该路径是存储容器和 ISO 名称的组合。例如:
        /ISOStore/en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso
      5. 单击 更新。
    6. 单击 +添加新磁盘 按钮添加另一个磁盘:
      1. 将“类型”设置为 CDROM。
      2. 将“操作”设置为 从 ADSF 文件克隆。
      3. 将“总线类型”设置为 IDE
      4. 输入 Windows VIRTIO 驱动程序的路径。例如:
        /ISOStore/virtio-win-0.1.102.iso
      5. 单击 添加。
    7. 单击 +添加新磁盘 按钮。
      1. 将 类型 设置为 磁盘。
      2. 将 操作 设置为 在容器上分配。
      3. 将 总线类型 设置为 SCSI。
      4. 选择要使用的 容器。
      5. 输入 大小。
      6. 单击 添加。
    8. 单击 +添加新网卡,然后输入 VLAN 名称。
    9. 单击 保存。
  4. 启动 虚拟机。
    1. 选择 任务 > 虚拟机。
    2. 切换到 表格视图 以查看现有虚拟机。
    3. 在 表格 中选择虚拟机,然后单击 开机。
  5. 通过选择虚拟机并单击“启动控制台”来启动控制台。虚拟机启动时,它会开始从 ISO 磁盘安装 Windows 操作系统。虚拟机启动时,它会开始从 ISO 磁盘安装 Windows 操作系统。
    1. 当系统询问“您想将 Windows 安装到何处?”时,请注意,即使您在虚拟机创建向导中添加了磁盘,也没有显示任何磁盘。
    2. 选择 加载驱动程序 选项,然后选择 浏览。
    3. 选择包含 virtio-win-0.1.1 驱动程序的 CD。
    4. 选择 vioscsi 文件夹,然后选择适用于您的 Windows 操作系统 的文件夹。
  6. 操作系统安装完成后,手动安装 VirtIO 驱动程序:
    1. 启动 设备管理器。
    2. 选择 其他设备,右键单击 以太网控制器,然后选择 更新驱动程序软件。
    3. 浏览 我的电脑,然后选择 VirtIO CD。以太网驱动程序存储在 NetKVM 文件夹中。
  7. 服务器操作系统: 如果您需要会话主机功能:
    1. 选择 添加角色和功能。
    2. 对于安装类型,选择 基于功能或角色的安装。
    3. 对于服务器角色,选择 远程桌面服务 > 远程桌面会话主机。
    4. 完成添加服务器角色的过程。
  8. 安装所有重要更新。重新启动系统并检查更多更新。某些更新仅在其他更新安装后才可用。
  9. 安装所有必需的服务包。
  10. 禁用 Windows 系统还原 和 Windows 自动更新。
  11. 启用内置管理员并勾选 密码永不过期。
  12. 如果使用密钥管理服务 (KMS) 许可,请以管理员身份运行命令窗口,然后输入以下命令:
    slmgr /skms <kmsserverhost>
    slmgr /rearm
    reboot
    slmgr /ipk XXXX-YOUR-KMS-KEY-XXXX
    slmgr /ato
  13. 服务器操作系统: 将域用户添加到服务器操作系统的远程设置中。
  14. 检查是否存在死 (ghost) 网卡,如果存在则将其删除。输入以下命令:
    set devmgr_show_nonpresent_devices=1
    devmgmt.msc
  15. 卸载所有死 (ghost) 网卡。
  16. 如果这是服务器操作系统,请在 PowerShell 中运行以下命令:
    Set-ExecutionPolicy Unrestricted
    Enable-PSRemoting

在操作系统映像上运行 OS Machine Tools

要准备操作系统映像以在层中运行,请在该映像上运行 OS Machine Tools 文件。此可执行文件会运行 GPO 设置脚本 (gposetup.cmd) 和 Set KMS Version 脚本 (SetKMSVersion.hta)。
  1. 将以下可执行文件下载到操作系统映像上:
    Citrix_App_Layering_OS_Machine_Tools_20.x.x.exe
  2. 运行可执行文件。文件将保存到:
    c:\windows\setup\scripts
    注意:
    文件必须解压到 c:\windows\setup\scripts 目录。请勿更改目录。

如果使用密钥管理服务 (KMS),请配置许可证激活

脚本提取后,SetKMSVersion 实用程序会询问您是否选择使用 KMS 许可。
注意: 在同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中发布映像会导致激活问题。
  1. 在以下对话框中,选择是否使用密钥管理服务 (KMS) 许可。
    设置 KMS 版本映像
要为 KMS 配置脚本,请执行以下操作。
  1. 导航到:
    c:\windows\setup\scripts
  2. 以管理员身份运行 SetKMSVersion.exe。这会在 c:\windows\setup\scripts\kmsdir 文件夹中创建一个脚本文件。
操作系统启动时,将运行相应的 KMS 激活脚本。

确保安装了正确版本的 .NET Framework(Windows 10 和 Windows Server 2016)

.NET Framework 是 Microsoft 提供的一个软件框架,许多第三方应用程序都需要它才能运行。任何 .NET Framework 的安装都必须包含在操作系统层中。这包括 .NET 3.5 和 .NET 4.0 或更高版本。
注意:
Citrix Virtual Apps and Desktops (CVAD) 2303 需要 .NET 4.8 才能添加 VDA。
请务必在操作系统层上安装 .NET Framework 和任何更新。

安装 App Layering 服务

  1. 在 c:\windows\setup\scripts 文件夹中,运行 setup_x86.exe (32 位) 或 setup_x64.exe (64 位)。
  2. 安装程序会提示您输入 unattend 文件的位置。请勿在 Nutanix 中使用 unattend 文件。

如果使用 MS Office,请运行优化脚本

App Layering 安装包中包含的优化脚本是分层 Microsoft Office 所必需的。此脚本通过禁用不需要的服务、启用需要的服务以及删除特定于安装的驱动程序和设置,帮助您节省内存和 CPU。
您可以在操作系统层上运行优化脚本,如果需要,可以使用映像模板中包含的应用程序层中的新版本脚本来取代它。由于应用程序层是在操作系统层之后应用于映像的,因此应用程序层中的脚本会覆盖操作系统层中的原始版本。
  1. 在 c:\windows\setup\scripts 文件夹中,运行 optimizations.cmd 文件以创建在映像创建时运行的文件。
  2. 按照说明在操作系统映像上运行 optimizations.cmd。

如有必要,加快 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
  3. 输入以下 Ngen.exe 命令以运行所有排队的项目。此命令在构建程序集之前处理排队的组件安装。
    ngen eqi 3
    Ngen.exe 任务会移动到命令提示符的前景,并列出正在编译的程序集。如果看到编译消息,这是正常的。
    您可以使用任务管理器查看 MSCORSVW.EXE 实例是否正在运行。如果正在运行,请等待其完成,或运行 ngen update eqi 3。
    注意: 请勿通过重新启动来停止任务。请等待任务完成!
  4. 确保所有 Ngen.exe 进程都已完全运行。