App Layering

准备您的操作系统映像以便在 Nutanix 中进行分层

本主题介绍如何准备一个干净的操作系统映像,以便导入到新的操作系统层。在开始之前,请确保您符合 要求。在准备映像时,如果您认为操作花费太长时间,可以根据需要加快 Microsoft Ngen.exe 操作

如果使用 Windows 10 且运行 PVS、计算机创建或查看,则可以通过删除 Windows 10 内置应用程序来加快桌面启动时间。但是,我们建议删除 新版本 的操作系统层上的应用程序,而 是在操作系统映像本身中。

注意:

要在 Nutanix 中使用无人参与文件。App Layering 软件将删除无人参与的文件(如果该文件存在),因为在 Nutanix 中没有必要或推荐该文件。

在虚拟机上安装操作系统

作为此过程的一部分,您可以设置密钥管理服务 (KMS) 激活。

注意: 将映像发布到同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中会导致激活问题。

  1. 登录到棱镜控制台。
  2. 选择“任务”>“VM”,然后切换到“表视图”以查看现有虚拟机。
  3. 单击右上角的 + 创建 VM ,然后输入有关新虚拟机的详细信息:
    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. 单击 + 添加新 Nic,然后输入 VLAN 名称
    9. 单击保存
  4. 打开 虚拟机电源。
    1. 选择任务 > VM
    2. 切换到表视图以查看现有虚拟机。
    3. 中选择虚拟机,然后单击 机。
  5. 通过选择 VM 并单击启动控制台来启动控制台。当虚拟机启动时,它开始从 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
    <!--NeedCopy-->
    
  13. 服务器操作系统: 为服务器操作系统将域用户添加到远程
  14. 检查是否存在已失效(虚影)NIC,如果存在,则将其删除。输入以下命令:

    set devmgr_show_nonpresent_devices=1
    devmgmt.msc
    <!--NeedCopy-->
    
  15. 卸载任何不活动的 (ghost) 网卡。
  16. 如果这是服务器操作系统,请在 PowerShell 中运行以下命令:

    Set-ExecutionPolicy Unrestricted
    Enable-PSRemoting
    <!--NeedCopy-->
    

在操作系统映像上运行操作系统机器工具

要准备要在层中运行的操作系统映像,请在映像上运行操作系统机器工具文件。此可执行文件运行 GPO 安装脚本 (gposetup.cmd) 和设置 KMS 版本脚本 (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 文件夹中,运行 优化 .cmd 文件以创建要在创建映像时运行的文件。

  2. 按照说明在操作系统映像上运行优化 .cmd。

加快 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 update eqi 3

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

  4. 确保所有 Ngen.exe 进程都已运行至完成。