系统安装部署系列教程(六):封装系统

2023-11-01

终于到了本系列的最核心一篇教程了,在这篇教程里我们来看看如何按需来封装系统。封装系统有很多作用:硬件厂商需要将自己的特性软件和驱动程序预装到系统中;企业用户需要集成KMS激活服务器;装机人员需要预装用户的常用软件。所有这些功能,都可以通过封装系统来实现。

首先来简单介绍一下系统安装过程。从前面的原版系统安装教程里面可以看到,系统安装可以大致分为三个阶段:第一个阶段是一开始的分区设置,选择将系统安装到哪个位置,这部分功能可以由PE里面的分区工具代替;第二个阶段是释放系统映像,也就是复制系统文件并重启电脑那个阶段;第三个阶段是输入用户名、密码、同意用户协议、网络设置、系统更新设置等信息并进入桌面的阶段,这是系统安装的最后阶段,之后就是正常的系统体验了,所以这个阶段有个专门的名字,叫做OOBE(Out of Box Experience)也就是系统全新体验。对于Win10来说,OOBE阶段还需要设置微软小娜等一系列微软服务。

为了对系统进行封装, 我们需要在OOBE之前进入系统,这个听起来可能有些不可思议,不输入用户名这些信息,怎么进入系统呢?其实Windows提供了这方面的功能,目的很简单,就是为了允许我们向系统中封装软件。这个功能叫做审核模式,进入方法是在OOBE的时候按Ctrl+Shift+F3,在审核模式里我们可以正常安装软件、更新系统,全部设置完毕后关闭系统用PE备份系统分区即可。好了,让我们来看看怎么做吧。

准备工作

这里要感谢一下IT天空,制作了不少实用的装机工具,让本文的封装过程简单多了。当然相对地,要下载的第三方软件也变多了。

  • 虚拟机软件。我用的是VMware Workstation,用Virtual Box也可以,不过一些操作可能会不同。这个不是必须的,但是有了虚拟机会简单很多。不然的话,你就需要在重启电脑很多次,而且万一出现问题还需要重装系统再来一次。
  • 系统镜像。这里用的是上篇教程中制作出来的带了最新系统补丁的Win7 SP1系统。当然直接用原版系统也可以,但是可能需要自己打补丁。
  • 要预装的软件,比如杀毒软件、输入法、浏览器等。
  • 一键运行库,包含了VC++、.NET 3/4、DirectX9等系统必要组件,安装完它们,运行大部分软件和游戏都不会存在问题了。
  • 系统补丁合集,有Win7和Win10两个版本,包含了Win7 SP1和Win10 1809这两个最主流系统到目前为止的所有补丁。如果你用的是原版系统镜像(也就是没有自己打过补丁),就可以用它来安装补丁。
  • 万能驱动,有Win7和Win10两个版本,包含了大部分主流硬件的驱动,自动检测硬件一键安装,谁用谁知道。
  • Easy Sysprep,一款图形界面Sysprep程序,让系统封装更加简单。
  • 前面教程里制作的优启通PE启动U盘。

所有文件下载完毕后最好校验一下,避免文件错误导致系统故障。最后把除虚拟机和系统镜像以外的工具全部复制到优启通U盘里。之前我封装系统的时候,发现虚拟机共享文件是一个问题,最后最简单的解决办法就是直接插上U盘,然后让虚拟机连接U盘来实现共享。因为反正最后还是要放到U盘里拿出去做系统的。

进入审核模式

首先在虚拟机里安装系统。安装过程和前面介绍的安装原版系统方法一样。不过有一点需要注意,等到OOBE这个阶段,也就是输入用户名和计算机的时候,不要输入用户名进入下一步。
OOBE阶段

系统在这个界面的时候按Ctrl+Shift+F3,会重启系统并进入审核模式。这里会弹出网络位置设置,随便选就好了。然后会出现系统准备工具,直接点叉号或者取消关闭。
审核模式

在审计模式里可以正常安装软件,这里安装的软件将会成为预装软件,应用到所有之后用该镜像安装的系统里。不过杀毒软件算是个例外,最好在系统安装完毕进入桌面的时候用命令行调用安装。这一点将在后面介绍。用虚拟机安装的话,最好在这里添加一个系统快照,防止操作失误重新再来。

如果这里用VHD等方式直接在机器上进行,操作的时候需要格外小心了。虽然实机比虚拟机快很多,但是考虑到可能因为失误重头再来以及将来重新封装系统的可能性,整体来看还是虚拟机比较方便。

更新系统

打开Windows Update,搜索并安装更新,提示重启的时候重启即可。重启后仍然会进入审核模式,不用担心。

安装更新

预装软件

正常安装用户常用的软件即可,需要注意预装软件的安装路径必须为C盘。而且杀毒软件最好不要在这里预装。

从U盘安装软件

这里要注意优启通U盘不要插到电脑USB3的口上,因为Win7默认不支持USB3的口。点击右下角的一排图标的最后一个,选择连接(断开与主机的连接),即可将U盘连接到虚拟机。

虚拟机连接U盘

我这里只预装了QQ输入法、Chrome浏览器以及Hashtab这个小工具。大家可以根据自己需要来安装软件。
预装软件

激活系统

这里我依旧选择KMS激活方式,简单高效。我喜欢将下面几行命令保存成activate.bat,用的时候直接右键管理员权限运行。

@echo off
slmgr /skms kms.03k.org
slmgr /ato

激活系统

上面的激活方式需要每180天自动联网一次续期。如果需要离线激活可以使用HEU KMS激活工具,支持本地搭建KMS服务器激活,无需联网。

个性化设置

最后就是一些常用的个性化设置了。大家根据自己喜好设置就好了。

主题设置。
主题设置

桌面图标设置。
桌面图标设置

显示文件扩展名。
显示文件扩展名

封装系统

封装系统第一阶段

最后一步就是用Easy Sysprep封装了。这里需要注意一下,如果要安装杀毒软件等一些需要在进桌面时安装的软件,需要将它们复制到C盘,然后设置桌面任务安装,然后在设置清理任务删除。

在进行这一步骤的时候最好也先保存一下系统快照,防止出现失误重来。

首先在C盘创建一个tools文件夹,将相关工具全部复制进去。这里我只是为了演示一下,所以只复制了一个激活工具。
复制工具

然后打开U盘里的EasySysprep工具,应该会显示如下的界面。
Easy Sysprep工具

点击设置,然后根据需要进行设置。注册用户和组织那里可以随便写。
EasySysprep设置

最后点击封装按钮,然后EasySysprep会开始处理。可以注意到EasySysprep工具左上角的罗马数字1,表示目前在系统封装的第一阶段。注意阅读提示,因为封装过程不可逆,所以大家最好再次保存一个系统快照。这里选择完成后关机,然后耐心等待即可。

开始封装

封装系统第二阶段

**不要直接启动虚拟机!不要直接启动虚拟机!不要直接启动虚拟机!**主要的事情说三遍,直接启动系统会用刚才的设置直接进入OOBE阶段,导致封装失败。正确的做法是修改虚拟机启动项,进入优启通PE,然后备份系统分区。

设置优启通镜像

我这里用的是VMware Workstation虚拟机软件,右键点击虚拟机选项卡选择打开电源时进入固件。
进入固件

然后选择CDROM那项,因为刚刚设置了优启通PE,所以选择它会直接启动进入PE。
选择启动项

在PE里面再次连接U盘并启动EasySysprep。
启动EasySysprep

然后点击设置,会打开一个很多设置项的对话框。这里依次说明一下。

首先是OEM标签,这里可以设置在系统属性中显示的一些OEM信息,当然不设置也可以。

然后是优化,这里有很多系统优化项,懂的话可以自己修改,不懂的话不管它就好了。

然后是部署,这里可以设置计算机名,并可以自动搜索万能驱动、一键运行库等。现在这个版本的EasySysprep可以自动搜索到U盘里的万能驱动和一键运行库,方便了很多。不然的话只能和杀毒软件一样预先放到C盘,导致做出来的镜像非常大。

然后是系统,这里可以调整一些系统设置。

然后是用户,这里可以自动创建用户。

然后是网络,这里可以设置网络,不过这个功能应该是主要用于局域网批量设置网络。个人的话,关掉就好了。

然后是任务,在这里可以设置一些任务,主要用于安装一些软件(杀毒软件或者激活软件)并执行之后的清理工作。杀毒软件的静默安装参数请去各杀毒软件的论坛查询,一般是/S。HEU KMS激活工具的静默激活命令是/w /i 。最后再删除tools文件夹,就可以完美清理了。

最后一个是其他,设置捆绑软件和映像备份位置。捆绑软件全关掉就好,映像保存位置选择U盘。最后点击封装按钮并耐心等待即可。这里极限压缩虽然会将整个镜像压缩到4.6G的大小,不过用时实在是太慢了。

封装Win10的做法和Win7类似,由于篇幅所限就不在介绍了。由于Win10默认自带USB3的驱动,所以U盘可以查到USB3的口上,加快访问速度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统安装部署系列教程(六):封装系统 的相关文章

  • 使用 CreateRestrictedToken(LUA_TOKEN) 从提升的进程创建低/中进程

    我正在尝试从提升的进程创建中或低完整性进程 我知道还有其他类似的问题 但它们主要关注使用资源管理器或任务计划程序等解决方法 我想坚持使用CreateRestrictedToken CreateProcessAsUser 我认为一定可以以某种
  • Unix 命令“host” - Windows 中有等效命令吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在一台 Windows 7 机器上 按照本文指示我使用 Unix 命令 host https devcenter heroku com
  • Jekyll for GitHub Pages 在 Windows 上找不到 rouge

    我刚刚在 Windows 上安装了 Jekyll 我正在尝试使语法突出显示与 rouge 一起使用 我已经设定highlighter rouge在 config yml 上 在文件 posts 2015 08 13 my first pos
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • 如何检测Windows版本是否合法? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对获取版本信息不感兴趣 我想做的就是确保我的应用程序只能在合法版本的 Windows 上运行 而不是在盗版版本上运行 Windows 使
  • 64 位大型 malloc

    malloc 失败的原因是什么 尤其是在 64 位中 我的具体问题是尝试在 64 位系统上分配一大块 10GB RAM 该机器有 12GB RAM 和 32GB 交换空间 是的 malloc 是极端的 但是为什么它会成为一个问题呢 这是在带
  • Node.js + Socket.io + Windows 7 / 8?

    我一直在到处寻找 但似乎找不到解决方案 是否可以在 Windows 7 上的 Node js 上安装 Socket io 如果没有 是否有某种替代方案 或者您知道未来有任何 Windows 支持吗 通常使用 Node js 包管理器 但是我
  • dia2dump:CoCreateInstance 失败 - HRESULT = 80040154

    我正在尝试使用 Visual Studio 2017 及其在 Windows 7 x64 上转储 PDB 的签名dia2dump https msdn microsoft com en us library b5ke49f5 aspx 我加
  • 如何在子 shell 中运行 cmd.exe 批处理文件

    我有一个批处理文件 通常像这样调用 longjob cmd gt result txt 2 gt 1 这工作正常 但脚本在执行过程中更改了目录 将我的 shell 留在该目录中 这很麻烦 有没有办法在子 shell 中运行命令 同时仍然允许
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • 如何获取Windows批处理的父文件夹

    我正在编写一个批处理文件 我需要获取该bat文件的父文件夹 有可能吗 注意 我的意思是批处理文件的父文件夹 而不是调用该批处理的提示的当前目录 Thanks 批处理的父文件夹位于变量中 dp0位于 例子 echo off setlocal
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • 为什么 fopen 无法打开已存在的文件?

    我在 Windows XP 上使用 Visual Studio 6 是的 我知道它很旧 构建 维护 C DLL 我遇到了 fopen 无法打开现有文件的问题 它总是返回 NULL 我试过了 通过将 errno 和 doserrno 设置为零
  • C# WMI 在远程 PC 上运行一个 exe,然后在同一台 PC 上运行另一个 exe,然后在网络路径上调用 Directory.CreateDirectory 并失败

    使用 C WMI 我在另一台计算机上启动一个 exe 该 exe 使用 C 启动另一个 exeProcess班级 最后一个 exe 尝试调用Directory CreateDirectory使用网络路径 又名 comp1 d dir Dir
  • Windows批处理文件:将结构转换为单行字符串

    我需要将这个艰巨的任务作为批处理文件来完成 这对于 C 来说不是最困难的 但在 DOS 中是一个地狱 至少对我来说 我需要将结构转换为单个 var 字符串 才能在我的程序中再次将它们转换为该结构 别担心回归 一切都已经完成了 该结构的大小会
  • 可以读取目标文件吗?

    我很好奇 obj文件 我几乎不知道它们是什么 或者它们包含什么 所以我用 Vim 文本编辑器打开它们 我在里面发现了一种类似外星人的语言 有什么办法可以理解它们代表什么以及它们的内容是什么 另外 它们的用途是什么 Thanks Sure 但
  • 仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我知道如何在 Windows 上使用 xampp 设置本地网络服务器 我在主机文件 c windows system32 drivers etc ho
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成

随机推荐

  • 【在线教育】- 前端环境搭建&讲师CURD前端实现

    在线教育 一 在线教育前端环境搭建 1 1 vue element admin 概述 1 2 vue element admin master安装 1 3 vue element template介绍 了解 1 4 vue element
  • 牛客面试高频算法题js(输出二叉树的右视图、岛屿数量、矩阵的最小路径和、字符串出现次数的TopK问题、二叉树根节点到叶子节点的所有路径和)

    NC136 输出二叉树的右视图 描述 请根据二叉树的前序遍历 中序遍历恢复二叉树 并打印出二叉树的右视图 数据范围 0 le n le 100000 n 10000 要求 空间复杂度 O n O n 时间复杂度 O n O n 如输入 1
  • html跳转页面到自己写的另一个页面,非js

    最简单的跳转页面 记录给渣渣的自己 很low的两个html界面1和2 在1页面上设置一个button 按下按钮 跳转至自己写的2界面 代码如下 div class wrapper div class container h1 Welcome
  • Sqli-labs 15-19

    15关 在输入框内测试Username asd Password 123并点击提交后发现并没有什么卵用 在Username处尝试万能钥匙1 or 1 1 发现成功登录了 接下来看源码分析问题 由于红下划线处的username uname 所
  • 移动app开发如何做接口的版本控制

    移动app为什么要做版本控制 应用升级无法做到全部升级 比如某应用现行1 1版本 某次开发升级后 版本变为1 2 除app界面变化外 后台接口也发生了变化 然而不是所有的用户都在第一时间升级了app 或者由于版本推送不及时 用户忽略更新等原
  • 2020浙江大学软件学院预推免经验

    个人背景 本人为末流211计算机科学与技术专业 且专业排名于保研名额末尾 但是综合排名在中上肯定有保研资格 本科学校最后是以综合排名上报学信网的 而预推免和夏令营对方学校对看的一般是专业排名 预推免报名时本科学校已经出了推免名单了 所以预推
  • Datadog 能成为最大的云监控厂商吗

    Datadog 原本是一家名不见经传的云监控公司 于 2019年9月19日 登陆纳斯达克 上市首日即突破 80亿 美金 上市前还搞了个小插曲 思科在 IPO 前夕提出 70亿美元 全面收购要约 被 Datadog 董事会断然拒绝 时至今日
  • leetcode 55. 跳跃游戏

    一 题意 给定一个非负整数数组 nums 你最初位于数组的第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 二 解法 贪心算法 解法1 计算出 i n u m s
  • Qt程序启动画面播放(gif与swf两种动画格式) - 路上的脚印

    学习Qt有一段时间了 发现一个小问题 网上关于Qt的资料或者总结性的学习及应用文章有点少 比如 Qt完整的API 程序运行之前的启动画面如何按理想效果播放等 每次想在项目中添加一些应用的时候 总是找不到好的书籍或文章可以马上学习 上手 今天
  • 淘宝、1688、京东、拼多多,抖音五个平台的区别分析

    淘宝 淘宝是中国最大的C2C电子商务平台 也是消费者购物的首选平台 淘宝上的商品种类繁多 价格实惠 同时还有很多优惠活动和促销活动 让消费者可以以较低的价格购买到高质量的商品 1688 1688是中国最大的批发市场之一 有数百万的商家在上面
  • Qt为release中可执行程序添加库进行打包并结合inno setup打包生成exe安装文件

    Qt为release中可执行程序添加库进行打包并结合inno setup打包生成exe安装文件 文章目录 Qt为release中可执行程序添加库进行打包并结合inno setup打包生成exe安装文件 一 Qt为release中可执行程序添
  • fedora11下gmlive0.22beta源代码安装

    1 解决依赖问题 否则会出现问题 No package gtkmm 2 4 found No package libglademm 2 4 found 安装依赖包 yum install gtkmm24 dev yum insttall l
  • C# 海康人脸识别设备初开发(二)话不多说以下完整例子

    demo截图 demo下载地址 https download csdn net download qq 16632449 11002228 以下完善了计划权限 可以参考下 其他的没了 如果提示错误23 基本是设备不支持 那你就要去问下海康的
  • Spring boot定时任务@Scheduled

    文章目录 1 前言 2 pom包配置 3 启动类启用定时 4 创建定时任务实现类 5 补充 cron表达式 6 遇到的坑 1 前言 Scheduled 参数可以接受两种定时的设置 一种是我们常用的cron 6 一种是 fixedRate 6
  • C++11:委派构造函数

    委派构造函数
  • TM1650数码管(类IIC驱动)

    目录 一 TM1650简介 1 特性描述 2 功能特点 二 IIC Inter Integrated Circuit BUS 结构解析 1 IIC协议介绍 2 多主机IIC总线结构 3 信号概念 三 TM1650数码管的工作 四 编写代码
  • [Spring3.x源码]Ageci(二)授权器

    上一篇中配置的FilterSecurityInterceptor即是授权器 FilterSecurityInterceptor doFilter ServletRequest request ServletResponse response
  • Qt实现打开网页

    Qt实现打开网页 新建一个mainwindow 在UI界面添加一个Text Browser 首先在myHTTP pro中添加QT network 在mainwindow h中新建两个类 QNetworkReply和QNetworkAcces
  • 35. 实战:Python实现视频去水印(文末源码)

    目录 前言 目的 思路 代码实现 1 请求URL 查看源代码 2 源代码中没有就去抓包工具 3 拿到视频源链接 继续检索来源 4 拿到数据和链接 二进制写入到本地 完整源码 运行效果 总结 前言 我们在刷某短视频平台时 有些视频我们想保存到
  • 系统安装部署系列教程(六):封装系统

    终于到了本系列的最核心一篇教程了 在这篇教程里我们来看看如何按需来封装系统 封装系统有很多作用 硬件厂商需要将自己的特性软件和驱动程序预装到系统中 企业用户需要集成KMS激活服务器 装机人员需要预装用户的常用软件 所有这些功能 都可以通过封