准备你的操作系统映像以便在 Google Cloud 上进行分层
本主题介绍如何准备一个干净的操作系统映像,以便导入到新的操作系统层。在开始之前,请确保满足要求。在准备映像时,如果你认为花了太长的时间,则可以加快 Microsoft Ngen.exe 操作。
如果使用 Windows 10 但未运行 Citrix Provisioning、Citrix 计算机创建或 View,则可以加快桌面启动时间删除 Windows 10 内置应用程序。但是,我们建议删除新版本的操作系统层上的应用程序,而不是在操作系统映像本身中。
在虚拟机上安装操作系统
熟悉准备操作系统层的准则,包括要求和建议。请务必阅读有关操作系统层中要包含的内容以及不应包含哪些内容的章节。
导航到Google Cloud 门户。
在左列中选择Marketplace,然后部署新虚拟机。
注意:
配置新实例网络时,请确保 VM 位于设备可访问的网络上。
如果您使用的是 Windows 服务器操作系统,请滚动到操作系统,然后选择Windows Server 2019或Windows Server 2016操作系统。
如果你要从其他平台引入 Windows 10(在市场中不可用),请按照自带许可证教程中的步骤操作。
配置新实例:
为新实例选择网络时,请确保 VM 位于设备可访问的网络中。
选择存储时,任何类型的存储都可以。
在映像上运行 App Layering 操作系统机器工具
在新计算机上,打开 Web 浏览器,导航到下载中心并下载操作系统计算机工具。
将以下 zip 文件下载到操作系统映像中:
Citrix_App_Layering_OS_Machine_Tools_20.x.x.exe
运行该文件,并将文件复制到:
c:\windows\setup\scripts
注意:
必须将文件提取到上述目录。不要更改目录。
如果使用密钥管理服务,请配置许可证激活
提取脚本后,SetKMSVersion
实用程序会询问您选择是否使用密钥管理服务 (KMS) 许可。
注意:
将映像发布到同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中会导致激活问题。
在以下对话框中,选择是否使用密钥管理服务 (KMS) 许可。
要为 KMS 配置脚本,请执行以下操作。
导航到:
c:\windows\setup\scripts
以管理员身份运行SetKMSVersion.exe以在
c:\windows\setup\scripts\kmsdir
文件夹中创建脚本文件。
当操作系统启动时,将运行相应的 KMS 激活脚本。
安装 App Layering 服务
- 在新计算机上,导航到
C:\Windows\Setup\scripts
并运行setup_x64.exe以在操作系统计算机上安装 App Layering 驱动程序。 - 安装会提示您输入 Unattend.xml 文件所在的位置(默认位置为 C:\windows\panther)。
- 确保此计算机未加入域。
- 在操作系统计算机上执行挂起的重新启动,以便您可以将此映像导入到层中。
- 请确保新操作系统计算机处于以下状态之一,然后再继续操作。
- 正在运行
- 已停止
- 已停止(取消分配)
加快微软 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
操作,可以将任务带入前台以尽快完成任务。
要将任务置于前台,请执行以下操作:
- 以管理员身份打开命令提示符。
转到当前正在使用的版本的
Microsoft.NET\Framework
目录:cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
输入以下
Ngen.exe
命令以运行所有已排队的项目。此命令在构建程序集之前处理排队的组件安装。ngen eqi 3
Ngen.exe
任务会在命令提示符下移动到前台,并列出正在编译的程序集。如果你看到编译消息,这是可以的。您可以使用任务管理器查看
MSCORSVW.EXE
的实例是否正在运行。如果是,请允许它完成或运行ngen update eqi 3
。警告:
不要重新启动以停止任务。允许任务完成!
- 确保所有
Ngen.exe
进程都已运行至完成。