准备用于 XenServer®、Hyper-V 或 vSphere 中分层的操作系统映像

开始之前,请确保您满足要求。在准备映像时,如果您认为操作耗时过长,可以如有必要,加快 Microsoft Ngen.exe 操作

如果使用 Windows 10,只要您运行 Citrix Provisioning、计算机创建或 VMware View,就可以加快桌面启动时间。在这种情况下,您可以删除 Windows 10 内置应用程序。我们建议在操作系统层的新版本中删除应用程序,而不是在操作系统映像本身中删除。

注意:

添加新的 XenServer 连接器后,XenServer 支持基于 UEFI 的计算机。

在虚拟机上安装操作系统

从 ISO 全新安装操作系统至关重要,最好是从您的管理程序安装。

在此过程中,请务必遵循特定于您正在安装的 Windows 版本的步骤和注意事项。

  1. 登录到您的管理程序客户端。
  2. 为您的操作系统类型创建具有正确 CPU、RAM、硬盘和网络设置的虚拟机。指导:

    • XenServer 虚拟机: 确保仅选择一个网络。
    • vSphere 虚拟机:
      • 网络: (必需) 选择 VMXNET 3 网络适配器

      重要:

      您可以有一个且仅有一个网络设备,并且 E1000 NIC 必须从未使用过。默认的 E1000 适配器(甚至是 E1000 适配器残留的虚拟 NIC)可能会导致虚拟机上出现自定义超时错误。

      • 精简配置: 选择精简配置
    • 所有管理程序:
      • 硬盘: 确保设备可以访问您创建的硬盘。
  3. 附加 ISO 并安装操作系统。此计算机不得加入域。 域加入必须在平台层中完成,并且任何域组成员身份更改都必须通过组策略完成。
  4. 为您计划打包层的平台安装管理程序工具。如果您支持多个管理程序,请将您计划用于在平台层中发布映像的管理程序工具放入平台层。

    • 对于 Hyper-V:使用 Microsoft Windows 集成服务安装盘安装 Hyper-V 集成服务。

如果使用服务器操作系统,请安装远程桌面会话主机功能

使用 Windows Server 时,您需要安装远程桌面会话主机功能。当远程桌面会话主机角色安装在操作系统层中时,它会作为 Windows 的一部分进行更新。如果您愿意,也可以将其安装在带有 VDA 的平台层上。

如果您在操作系统层中安装 RDS,则需要使用本地 GPO 来定义 RDS 许可证服务器。否则,随着时间的推移,您将失去登录打包计算机的能力。

要安装会话主机功能:

  1. 服务器管理器中,选择添加角色和功能
  2. 对于安装类型,选择基于角色基于功能的安装。
  3. 对于服务器角色,选择远程桌面服务 > 远程桌面会话主机(已安装)。这将安装 C++ 库和 RDS 角色。
  4. 完成添加服务器角色的过程。

确保安装了正确版本的 .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 和任何更新。

安装 Windows 更新

请务必安装所有 Windows 更新。

  1. 安装所有重要更新。
  2. 虚拟机重新启动后再次检查更新。某些更新仅在其他更新安装后才可用。
  3. 安装所有所需的服务包:
    • 如果将 Windows 2008 与 Citrix Provisioning™ 结合使用,请安装 Windows Server 2008 R2 Service Pack 1 (SP1)。

      注意:

      如果已安装 KB3125574,请在此服务包安装之前将其卸载。

  4. 使用本地组策略编辑器 gpedit.msc 清除 Windows 自动更新并禁用 Windows 系统还原。系统会为您处理还原点。层版本允许您指定更新发生的时间。
  5. Windows 10: 通过输入以下命令清除休眠:

    powercfg.exe /hibernate off
    <!--NeedCopy-->
    
  6. 启用内置管理员并选择密码永不过期
  7. 如果使用密钥管理服务 (KMS) 许可,请以管理员身份运行命令窗口,然后输入以下命令:

    slmgr /skms <kmsserverhost>
    slmgr /rearm
    reboot
    slmgr /ipk XXXX-YOUR-KMS-KEY-XXXX
    slmgr /ato
    <!--NeedCopy-->
    
  8. 如果使用服务器操作系统,请在 PowerShell 中运行以下命令:

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

如有必要,加快 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. 输入以下 Ngen.exe 命令以运行所有排队的项目。此命令在构建程序集之前处理排队的组件安装。

    ngen eqi 3
    <!--NeedCopy-->
    

    注意:

    ngen 命令的变体已经过测试,并且是在此 App Layering 情况下有效的变体。

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

    您可以使用任务管理器查看 MSCORSVW.EXE 实例是否正在运行。如果正在运行,请让它完成,或者运行 ngen eqi 3

    警告:

    请勿重新启动以停止任务。让任务完成!

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

在映像上运行 App Layering 操作系统计算机工具

要准备在层中运行的操作系统映像,请在映像上运行操作系统计算机工具文件。此可执行文件运行 GPO 安装脚本 (gposetup.cmd) 和用于设置密钥管理服务 (KMS) 版本的脚本。该脚本名为 SetKMSVersion.hta

  1. 将以下 zip 文件下载到操作系统映像上: App_Layering_Citrix_App_Layering_OS_Machine_Tools_20.x.zip
  2. 将文件解压到:

    c:\windows\setup\scripts
    <!--NeedCopy-->
    

    注意:

    文件必须解压到该目录。请勿更改目录。

如果使用 KMS,请配置许可证激活

密钥管理服务 (KMS) 脚本解压后,SetKMSVersion 实用程序会询问您是否使用 KMS 许可。

注意:

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

  1. 在出现的对话框中,选择是否使用密钥管理服务 (KMS) 许可。

    设置 KMS 版本映像

要配置 KMS 脚本,请执行以下操作。

  1. 转到:

    c:\windows\setup\scripts

  2. 以管理员身份运行 SetKMSVersion.hta,以在 c:\windows\setup\scripts\kmsdir 文件夹中创建脚本。

操作系统启动时,相应的 KMS 激活脚本将运行。

安装 App Layering 服务

  1. c:\windows\setup\scripts 文件夹中,运行 setup_x86.exe (32 位)setup_x64.exe (64 位)

您已准备好将映像导入新的操作系统层。

注意:

确保在操作系统导入之前运行一次映像准备工具安装程序。请勿在操作系统导入后运行映像准备工具安装程序,因为这可能会导致未知问题。