使用Sysprep对系统初始化,从而使自建wim文件还原有不同主机名

发布于 2022-11-25  307 次阅读


原文地址

当你从一台主机克隆出多个 PC,使用同一虚拟机克隆出多台 VM 之后,其 SID 势必会相同。

微软的操作系统很早就开始使用安全标识符(SID)对计算机和用户进行识别,如果你是域管理员,应该知道:分配给计算机账号的叫 Machine SID,分配给用户账户的是用户账户 SID。处于工作组计算机的 SID 是由算法生成的,除特殊账户外,其它用户的 SID 也是由算法生成的;而域中各对象的 SID 是由域范围的 SID 和具有唯一性的相对标识符 (RID) 连接组成,RID 是在创建安全主体时由域中的 RID Master 分配的。RID Master 的作用是:分配可用 RID 池给域内的 DC 以及防止对象的 SID 重复。

为什么要进行 Sysprep

当你从一台主机克隆出多个 PC,或者使用同一虚拟机母板克隆出多台 VM 之后,其 SID 势必会相同,在加入域时会造成安全主体的识别混乱和加域失败等。对于同一局域网中,存在相同 SID 的计算机或账户也可能会导致很多奇怪的问题,特别是权限和安全方面的问题。以上原理说清楚之后,大家便知道为什么要进行 Windows 10  Sysprep 操作了。

不可回避的是,也有很多 IT 管理员采用了各种克隆技术来快速批量部署数十、数百甚至上千台的 PC 或服务器,这种以映像方式将 Windows 操作系统、应用程序和软件配置进行批量分发的场景已经非常常见。那么 SID 是否重复就显得尤为重要,如果不确定你的 Windows 10 客户端是否有 SID 相同的情况,可以使用我们在之前介绍 Sysinternals 系列中所介绍的 psgetsid 工具进行查看。

之前 sysinternals 套件中提供了一个 newsid 小工具也可以实现清除 SID 的功能,但由于各种原因目前该工具已被取消,其作者 mark 也在其博客文章中进行了详细解释。因此,现在 Sysprep 已是被微软所支持用于解决 SID 重复问题的唯一工具。

如何使用 Windows 10 Sysprep

要在 Windwos 10 中执行 Sysprep 操作非常简单,只需浏览到 C:\Windows\System32\sysprep 目录执行 sysprep.exe 文件即可。

windows-10-sysprep-2_thumb.jpg
在弹出的「系统准备工具」窗口中,我们通常会选择「OOBE」和「通用」选项,其中的 OOBE 是指系统下次启动之后重新进入配置界面(与全新安装 Windows 10 之后的操作几乎一样),选择「关机」是为方便管理员将该系统制作成虚拟机母板或要分发的映像母板。

windows-10-sysprep-2.1_thumb.jpg

如果你喜欢使用命令行,Sysprep 也支持命令行操作,可通过如下命令实现上述图形界面的功能:

复制Sysprep /generalize /shutdown /oobe

为方便管理员制作虚拟机模板,Windwos 10 中的 sysprep 还支持 VM 模式,该模式可以方便地帮助管理员制作 VHD(X) 进行快速部署。VM 模式只支持在虚拟机中使用,而且只能通过命令行来操作:

复制Sysprep /generalize /oobe /mode:vm

一旦 Sysprep 开始执行操作,Windows 10 将在相关工作处理完成后按管理员的选择进行关机或重启。

windows-10-sysprep-3.jpg

操作执行完成后,我们就可以使用映像抓取工具进行捕获后部署或将 VHD/VMDK 用于全新的虚拟机当中。所有进行过 Sysprep 操作的 Windows 10 由于剔除了安全标识符等操作系统主体信息,在下次启动时会重新进入 OOBE 阶段。

windows-10-sysprep-5_thumb.jpg


或许明日太阳西下倦鸟已归时