准备用于 XenServer®、Hyper-V 或 vSphere 中分层的操作系统映像
开始之前,请确保您满足要求。在准备映像时,如果您认为操作耗时过长,可以如有必要,加快 Microsoft Ngen.exe 操作。
如果使用 Windows 10,只要您未运行 Citrix Provisioning、计算机创建或 VMware View,就可以加快桌面启动时间。在这种情况下,您可以删除 Windows 10 内置应用程序。我们建议在操作系统层的新版本中删除应用程序,而不是在操作系统映像本身中删除。
注意:
添加新的 XenServer 连接器后,XenServer 支持基于 UEFI 的计算机。
在虚拟机上安装操作系统
从 ISO 全新安装操作系统至关重要,最好是从您的管理程序安装。
在此过程中,请务必遵循特定于您正在安装的 Windows 版本的步骤和注意事项。
- 登录到您的管理程序客户端。
-
为您的操作系统类型创建具有正确 CPU、RAM、硬盘和网络设置的虚拟机。指导:
- XenServer 虚拟机: 确保仅选择一个网络。
-
vSphere 虚拟机:
- 网络: (必需) 选择 VMXNET 3 网络适配器。
重要:
您可以有一个且仅有一个网络设备,并且 E1000 NIC 必须从未使用过。默认的 E1000 适配器(甚至是 E1000 适配器残留的虚拟 NIC)可能会导致虚拟机上出现自定义超时错误。
- 精简配置: 选择精简配置。
-
所有管理程序:
- 硬盘: 确保设备可以访问您创建的硬盘。
- 附加 ISO 并安装操作系统。此计算机不得加入域。 域加入必须在平台层中完成,并且任何域组成员身份更改都必须通过组策略完成。
-
为您计划打包层的平台安装管理程序工具。如果您支持多个管理程序,请将您计划用于在平台层中发布映像的管理程序工具放入平台层。
- 对于 Hyper-V:使用 Microsoft Windows 集成服务安装盘安装 Hyper-V 集成服务。
如果使用服务器操作系统,请安装远程桌面会话主机功能
使用 Windows Server 时,您需要安装远程桌面会话主机功能。当远程桌面会话主机角色安装在操作系统层中时,它会作为 Windows 的一部分进行更新。如果您愿意,也可以将其安装在带有 VDA 的平台层上。
如果您在操作系统层中安装 RDS,则需要使用本地 GPO 来定义 RDS 许可证服务器。否则,随着时间的推移,您将失去登录打包计算机的能力。
要安装会话主机功能:
- 在服务器管理器中,选择添加角色和功能。
- 对于安装类型,选择基于角色或基于功能的安装。
- 对于服务器角色,选择远程桌面服务 > 远程桌面会话主机(已安装)。这将安装 C++ 库和 RDS 角色。
- 完成添加服务器角色的过程。
确保安装了正确版本的 .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 更新。
- 安装所有重要更新。
- 虚拟机重新启动后再次检查更新。某些更新仅在其他更新安装后才可用。
- 安装所有所需的服务包:
- 如果将 Windows 2008 与 Citrix Provisioning™ 结合使用,请安装 Windows Server 2008 R2 Service Pack 1 (SP1)。
注意:
如果已安装 KB3125574,请在此服务包安装之前将其卸载。
- 如果将 Windows 2008 与 Citrix Provisioning™ 结合使用,请安装 Windows Server 2008 R2 Service Pack 1 (SP1)。
- 使用本地组策略编辑器
gpedit.msc清除 Windows 自动更新并禁用 Windows 系统还原。系统会为您处理还原点。层版本允许您指定更新发生的时间。 -
Windows 10: 通过输入以下命令清除休眠:
powercfg.exe /hibernate off <!--NeedCopy--> - 启用内置管理员并选择密码永不过期。
-
如果使用密钥管理服务 (KMS) 许可,请以管理员身份运行命令窗口,然后输入以下命令:
slmgr /skms <kmsserverhost> slmgr /rearm reboot slmgr /ipk XXXX-YOUR-KMS-KEY-XXXX slmgr /ato <!--NeedCopy--> -
如果使用服务器操作系统,请在 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 操作,可以将任务带到前台以尽快完成。
要将任务带到前台:
- 以管理员身份打开命令提示符。
-
转到当前使用的版本的
Microsoft.NET\Framework目录:cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy--> -
输入以下
Ngen.exe命令以运行所有排队的项目。此命令在构建程序集之前处理排队的组件安装。ngen eqi 3 <!--NeedCopy-->注意:
此
ngen命令的变体已经过测试,并且是在此 App Layering 情况下有效的变体。Ngen.exe任务移动到命令提示符的前台,并列出正在编译的程序集。如果您看到编译消息,这是正常的。您可以使用任务管理器查看
MSCORSVW.EXE实例是否正在运行。如果正在运行,请让它完成,或者运行ngen eqi 3。警告:
请勿重新启动以停止任务。让任务完成!
- 确保所有
Ngen.exe进程都已运行完成。
在映像上运行 App Layering 操作系统计算机工具
要准备在层中运行的操作系统映像,请在映像上运行操作系统计算机工具文件。此可执行文件运行 GPO 安装脚本 (gposetup.cmd) 和用于设置密钥管理服务 (KMS) 版本的脚本。该脚本名为 SetKMSVersion.hta。
- 将以下 zip 文件下载到操作系统映像上: App_Layering_Citrix_App_Layering_OS_Machine_Tools_20.x.zip
-
将文件解压到:
c:\windows\setup\scripts <!--NeedCopy-->注意:
文件必须解压到该目录。请勿更改目录。
如果使用 KMS,请配置许可证激活
密钥管理服务 (KMS) 脚本解压后,SetKMSVersion 实用程序会询问您是否使用 KMS 许可。
注意:
将映像发布到同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中会导致激活问题。
-
在出现的对话框中,选择是否使用密钥管理服务 (KMS) 许可。

要配置 KMS 脚本,请执行以下操作。
-
转到:
c:\windows\setup\scripts -
以管理员身份运行 SetKMSVersion.hta,以在
c:\windows\setup\scripts\kmsdir文件夹中创建脚本。
操作系统启动时,相应的 KMS 激活脚本将运行。
安装 App Layering 服务
- 在
c:\windows\setup\scripts文件夹中,运行 setup_x86.exe (32 位) 或 setup_x64.exe (64 位)。
您已准备好将映像导入新的操作系统层。
注意:
确保在操作系统导入之前运行一次映像准备工具安装程序。请勿在操作系统导入后运行映像准备工具安装程序,因为这可能会导致未知问题。