桌面运维之系统封装(windows10 企业版为例子)

准备工作

一台电脑,带两块磁盘,一块用于安装系统,一块用于保存成果,我们下面分别称之为系统盘和数据盘。

之所以安装系统使用单独的磁盘,方便我们对整个磁盘进行清除等操作,而不会影响到我们的成果。

在数据盘上建立osdiy,在osdiy下面建立mount子目录,用于挂载修改镜。

将需要封装的系统原版镜像(非ghost的,可以上msdn我告诉你这个网站下载),放到osdiy目录下。

驱动总裁万能网卡版,放到osdiy目录下,其目录名应该为DrvCeonw。

一个PE启动盘,建议使用Edgeless。Edgeless以ventory为核心,没有广告插入(很多PE启动盘,只要使用它启动过电脑,电脑就被植入广告)。

安装母版系统

使用准备好的原版镜像,安装好操作系统,检查更新,并更新补丁(多次重启并检查,直到没有可更新的补丁为止)。

执行sysprep,进入审核模式。

sysprep在”系统盘:\windows\system32\sysprep“目录下。

使用命令的方式为: sysprep /audit /generalize /reboot

参数audit表示下次启动进入系统审核模式。generalize表示通用化,意味着可以再次将系统部署到其他电脑上。reboot表示执行完sysprep之后,重启电脑,可以根据自己的需求设定,但不影响下次启动系统进入审核模式。

制作审核模式母版镜像

在系统审核模式下,每次进入系统都会弹窗sysprep对话框,在该模式下的工作未做完之前,千万别点【确定】,否则将前功尽弃。

在系统审核模式下,我们可以安装任何我们想要的软件,并进行相关配置。

超级大网管将母版分成两种,基础母版和专业母版。

基础母版安装使用广泛的常用软件,如微信、QQ、远程、WPS。专业母版在基础母版的基础上增加AutoCAD、PS等。

我们先制作基础母版,专业母版不体现在本例中。

安装所需软件后,将母版做个镜像备份。

使用PE盘启动电脑,进入桌面后,启动命令控制台,进入数据盘osdiy目录。执行以下命令:

dism /Capture-Image /ImageFile:win10_audit_ent_base.wim /CaptureDir:c: /Name: win10_audit_ent_base

dism命令通常会带有,如果没有,拷贝一个绿色包到osdiy目录即可。

ImageFile告诉dism,捕获的映像文件名和路径,如果不带路径,则保存在当前目录下。

CaptureDir告诉dism需要捕获的系统所在盘。

Name参数也是必须的,一个wim文件中可以保存多个镜像,name有助于区分这些镜像。

这样我们的审核模式的母版镜像就制作好了,方便后面重复使用。

捕获可重复部署镜像

到此,我们实际上已经拥有一个可以重复部署的系统了,所需要做的就是进一步将其封装,好了,我们继续。

前面完成母版镜像,重启电脑,进入审核模式的系统。

运行sysprep,系统清理操作选择“进入系统全新体验(OOBE)”,勾选“通用”,关机选项为“重新启动”。

如果是命令行模式为: sysprep /oobe /generalize /reboot

当sysprep命令执行完成后,系统会按照我们的选择自动重启。

这里千万不要任由系统启动,我们需要立刻干预,选择我们的PE盘启动。

进入PE后,打开命令行窗口(cmd),进入osdiy目录,执行下面的镜像捕获命令。

dism /Capture-Image /ImageFile:win10_ent_base.wim /CaptureDir:c: /Name: win10_ent_base

完成后,我们就有一个可以拿到其他电脑上进行部署的wim系统镜像win10_ent_base.wim了。

但这个镜像还有一些我们需要优化的内容:1、安装过程与原版系统的安装过程一样,我们希望对安装过程进行简化,比如不需要进行隐私设置、输入用户名等;2、其他电脑上可能缺少很多驱动,我们需要补充。

下面我们继续。

镜像改造

现在,你需要使用U盘启动电脑,或者就使用前面的系统直接启动等待其部署完成。

好了,在osdiy目录下,我们有一个重要的镜像文件win10_ent_base.wim。我们要对它进行改造,第一步就是驱动程序添加。

执行下面的命令挂载镜像:

DISM /Mount-image /imagefile:win10_ent_base.wim /Index:1 /MountDir:mount

完成后,我们就可以在mount目录看到镜像文件中的内容,且可以对其进行修改。

新建 mount/windows/DrvCeonw目录,然后把驱动总裁的以下内容复制进去。

位置可不能错哦,因为我们后面的应答文件中的配置,使用的是这个目录。

接下来我们需要一个自动应答文件,来指示windows系统部署程序,如何改变部署过程。

在osdiy目录下,右键并新建一个unattend.xml文本文件,并将下面的内容粘贴进去,并保存:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="generalize">
        <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
            <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Order>2</Order>
                    <Path>net user administrator /active:yes</Path>
                    <Description>Enable Admin Account</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>21</Order>
                    <Path>%windir%\DrvCeonw\DrvCeo.exe /s</Path>
                    <Description>InDeploy</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <CopyProfile>true</CopyProfile>
            <TimeZone>China Standard Time</TimeZone>
        </component>
        <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Identification>
                <JoinWorkgroup>WORKGROUP</JoinWorkgroup>
            </Identification>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <LogonCommands>
                <AsynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <CommandLine>%windir%\DrvCeonw\DrvCeo.exe /pe</CommandLine>
                    <Description>Desktop</Description>
                </AsynchronousCommand>
            </LogonCommands>
            <OOBE>
                <ProtectYourPC>2</ProtectYourPC>
                <SkipMachineOOBE>true</SkipMachineOOBE>
                <SkipUserOOBE>true</SkipUserOOBE>
            </OOBE>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Description>Default Administrator Account</Description>
                        <DisplayName>Administrator</DisplayName>
                        <Group>Administrators</Group>
                        <Name>Administrator</Name>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:e:/osimagemaker/install-win10.wim#Windows 10 Enterprise LTSC 2019" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

当然,你也可以自行制作你的应答文件,只需要安装Windows Assessment and Deployment Kit – Windows 10,关于应答文件的制作,超级大网管有其他文章描述,这里省略。

接下来执行命令:

copy unattend.xml mount\windows\Panther\unattend.xml /Y

好了,应答文件和驱动我们都放入mount目录。

执行下面的命令,提交更改:

Dism /Unmount-image /MountDir:mount /Commit

上面的命令执行完成后,mount目录下变空了,更改也会提交到win10_ent_base.wim文件中,我们可以使用该镜像文件,往其他电脑上部署(安装)啦。

Dism部署windows镜像

我们有多种办法可以部署wim文件。

原版介质替换法

将镜像改名为install.wim,替换windows原版安装盘sources目录下同名文件。

如果你使用的是这种方法,千万注意dism的版本,最好制作一个最新版本的dism,放到PE盘里制作镜像。

关于如何制作可在PE下执行的dism,超级大网管有专门的文章介绍。

使用NT安装器等第三方工具进行部署

相信很多人都熟练使用这个方法,不过这种方法使得我们的系统很容易被植入广告。

dism命令部署

超级大网管的小伙伴们,喜欢使用微软的dism进行部署,下面我们看看这个方法如何操作。

使用PE盘启动电脑,打开命令行窗口,进入osdiy目录。

执行命令:

Dism /Apply-Image /ImageFile:win10_ent_base.wim /Index:1 /ApplyDir:c:

完成后,我们的系统被部署到系统盘(通常是c盘)。

下面还需要建立启动项,执行命令:

c:\windows\system32\bcdboot c:\windows /p

完成后,重新启动电脑,就可以进入我们设计好的自动部署过程,等待进入桌面即可。

可能碰到的问题

1、sysprep无法验证你的windows安装。

原因多半是系统没有更新完成所致,再检查更新,并重启。如果确实没有更新可做,进入windows更新界面,检查存储,然后删除所有可以删除的内容。