如果你想给别人安装已经提前安装好了更新和一些软件的操作系统,你就需要自行在虚拟机或者是单独的电脑上,提前做好封装定制。如果你能熟练使用各种 PE 工具箱的话,那么整体操作并不算很难。
本文适用的操作系统
Windows Vista / 7 / 8.x / 10 / 11,以及某些对应的服务器版本镜像(以下不再赘述)
准备工作
- 任何你熟悉的虚拟机软件(不建议使用基于 QEMU 的虚拟机)
- 你需要使用的微软原版 Windows 安装镜像,你可以在你信任的地方获取
- 你需要预装的各类软件的安装包,请提前做成 ISO 文件
- 内置了 Dism++ 软件的第三方 PE 镜像,例如 Hikari PE Project
创建虚拟机的配置注意事项
以使用 VMware 为例,请勿使用 VMware 内置的自动安装系统功能,而是使用“稍后安装操作系统”的选项。
客户机操作系统只需要选择“Windows 7 x64”就可以兼顾上述列举的绝大多数操作系统的定制需求。
硬盘空间一般只要 60GB 就足够了,如果你需要预装大型软件的话可以多分一些。
我们建议在做 32 位操作系统封装的时候,分配 3GB RAM,64 位分配至少 4GB RAM,建议至少 6GB RAM。本文以封装定制 Windows 10 32 位 LTSC 为例。如需修改 RAM 大小,请在最后一步点击自定义硬件,然后在里面进行修改。
然后,你需要点击新 CD/DVD (SATA),在里面加载你提前准备好的 Windows 安装镜像 ISO 文件。
你也可以选择在里面删除 USB 控制器、声卡以及打印机,只保留上面列举出的设备。
安装操作系统
由于没有开启自动安装功能,你将需要自己手动安装操作系统,流程和在正常机器安装没有区别。
但是,为了方便存放制作完成的镜像,你最好至少分两个分区(除开系统保留的启动分区)。
删除系统自带的 APPX 程序
如果你希望定制的操作系统是 Windows Vista / 7 或 Windows 10 企业版 LTSC,请忽略此步骤。
进入审核模式
从 Windows Vista 开始,微软内置了审核模式,也就是专门用于封装定制操作系统的模式。
进入方法很简单:只需要在 OOBE 界面下,按下组合键 Ctrl + Shift + F3 即可进入。如果您在笔记本电脑上安装了虚拟机,您可能还需要一并按下 Fn 才能触发。如果操作顺利,系统将会立即自动重启,并会以 Administrator 账号进入系统,每次进入系统时,您都会看见“系统准备工具”的窗口。
在你完成你想要的所有定制之前,请不要点击“确定”,而是直接关闭。
安装 .NET Framework 3.5 (Windows 8.x / 10 / 11 限定)
Windows 8.x 开始系统默认不会安装 .NET Framework 3.5,这给需要使用它的软件带来了很多不便。
如果你需要预装 .NET Framework 3.5,请打开命令提示符,执行以下命令(假定虚拟机的光驱位于 E 盘):
dism /online /enable-feature /featurename:netfx3 /source:E:\sources\sxs
由于你使用的账户已经是 Administrator 了,执行此命令不需要特地选择以管理员权限运行。
我们强烈建议你预装 .NET Framework 3.5。
安装系统更新
如果你希望定制的操作系统是 Windows 10 或 11,请在系统自带的系统更新部分跑一次系统更新。某些情况下可能会连带获得虚拟机的相关驱动,这些都不要紧,只需要耐心等待更新安装完成,重启即可。
安装你想要安装的软件
请勿安装虚拟机附加插件,例如 VMware Tools!
以下是安装原则注意事项:
- 安装时必须确保安装路径在系统分区的 Program Files 或 Program Files (x86) 目录。
不允许预装安装在 C:\Users\Administrator\AppData\Local\
这个路径的软件。但是,你可以选择内置软件的安装包供用户手动安装。
不允许使用此方式预装任何从 Microsoft Store 下载的应用。如何整合这类应用后续会说明。
- 如需预安装涉及到注册激活的商业软件,请勿注册或激活。
例如:Microsoft Office、Adobe CC、Autodesk AutoCAD
- 请勿通过此方式预装电脑自身的硬件驱动。如何整合硬件驱动后续会说明。
我们优先推荐安装的程序
Microsoft Visual C++ 2005 - 2022 可再发行运行库
DirectX 可再发行运行库
在不使用虚拟机附加插件的前提下,如何将安装包传输到虚拟机?
- 制作成 ISO 文件,然后在虚拟机内加载光盘镜像
- 使用局域网文件共享的方式访问
- 利用 HTTP File Server 将你想准备的文件复制到虚拟机上
固化系统更新
此举的目的是为了删除系统更新后被替换下来的旧版系统文件,使其变得无法卸载,与此同时减少硬盘空间占用。这也是我们定制自己的镜像的最终目的:为了在后续给别人安装操作系统时,节省安装系统更新所需的时间。
Windows 8.x / 10 / 11 限定
此方式不适用于 Windows Vista 和 Windows 7。
请打开命令提示符,执行以下命令:
dism /online /cleanup-image /startcomponentcleanup /resetbase
通用
请启动进 PE,打开 Dism++,打开对应你目前安装的操作系统的回话,并在系统清理里面清理你能看到的所有信息。Windows 10 Build 19041 或以上版本请谨慎操作。
将系统进行通用化 Sysprep
开始 Sysprep
请勾上系统准备工具窗口的“通用”,然后点击确定,等待系统重启。重启后,请马上进入 PE 开始后面的处理。
删除残留的 Administrator 用户记录
在 PE 下,删除位于系统盘的 C:\Users\Administrator 文件。
然后,打开 Dism++ 启动会话,紧接着打开注册表编辑器,访问到
"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}C:\Windows\system32\config\SOFTWARE" \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList
删除最后一个 S-1-5-21 开头的项,确保右边显示的是 Administrator,你就完成了对 Administrator 账户信息的清理工作。
其中, {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 代表随机的 GUID 数值。
最后,只需要使用 Dism++ 将系统备份成 WIM 文件就行了。由于虚拟机性能有限,不建议在虚拟机下直接极限压缩 ESD。
高度压缩镜像
假定镜像名字为 windows.wim,你需要将这个镜像复制到物理机上,然后执行以下命令:
dism /export-image /sourceimagefile:windows.wim /sourceindex:1 /destinationimagefile:windows.esd /compress:recovery
成品可以改名为 install.esd 来替换掉原版 Windows 安装镜像内的 install.wim 或 install.esd。