准备好操作系统映像以便在 XenServer、Hyper-V 或 vSphere 中进行分层
在开始之前,请确保满足 要求。 在准备图像时,如果你认为花费的时间太长,你可以 加快微软 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:使用微软 Windows 集成服务安装盘安装 Hyper-V 集成服务。
如果使用服务器操作系统,请安装远程桌面会话主机功能
使用 Windows 服务器时,你需要安装 远程桌面会话主机 功能。 将 远程桌面会话主机 角色安装在操作系统层时,它将作为 Windows 的一部分进行更新。 如果您愿意,可以改为使用 VDA 将角色安装在平台层上。
如果您在操作系统层安装 RDS,则需要使用本地 GPO 来定义 RDS 许可证服务器。 否则,随着时间的推移,您将失去登录包装机的能力。
要安装会话主机功能,请执行以下操作:
- 在 服务器管理器中,选择 添加角色和功能。
- 对于 安装类型,选择 基于角色 或 基于功能的安装。
- 对于 Server 角色,选择 远程桌面服务 > 远程桌面会话主机(已安装)。 这将安装 C++ 库和 RDS 角色。
- 完成添加服务器角色的过程。
确保安装了正确版本的 .NET Framework(Windows 10 和 Windows Server 2016)
.NET 框架是微软提供的软件框架,许多第三方应用程序都需要它才能运行。 .NET 框架的任何安装都必须包含在操作系统层中。 这包括.NET 3.5 和 .NET 4.0 或更高版本。
笔记:
Citrix Virtual Apps and Desktops (CVAD) 2303 需要.NET 版本 4.8 才能添加 VDA。
请务必在操作系统层上安装.NET 框架和所有更新。
安装 Windows 更新
请务必安装所有 Windows 更新。
- 安装所有重要更新。
- 重新启动虚拟机后,再次检查更新。 有些更新只有在安装其他更新后才可用。
- 安装所有必需的服务包:
- 如果将 Windows 2008 与 Citrix Provisioning 一起使用,请安装 Windows Server 2008 R2 Service Pack 1 (SP1)。 > 注意: > > 如果安装了 KB3125574,请在安装此服务包之前将其卸载。
- 清除 Windows 自动更新 并使用本地组策略编辑器
gpedit.msc
禁用 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-->
如有必要,加快微软 Ngen.exe 的操作
安装完所有软件更新后,必须允许 Ngen.exe
实质上将 .NET
字节码重新编译成原生映像,并构造注册表项来管理它们。
Ngen.exe
是微软原生图像生成器,它是 .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 OS 计算机工具
要准备要在图层中运行的操作系统映像,可以在该映像上运行 OS Machine Tools 文件。 该可执行文件运行 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 位)。
你已准备好 将映像 导入到新的操作系统层。
笔记:
确保在导入操作系统之前运行一次映像准备工具安装程序。 导入操作系统后不要运行映像准备工具安装程序,因为这可能会导致未知问题。