xiaowuhello
【转载】4《步步为营封WIN7》初级部署控制

]《步步为营封WIN7》初级部署控制

在Windows XP封装时代,我们用Sysprep.inf来控制部署过程中的基本问答部分,以实现基本的无人值守安装。

到了Windows Vista/2008/7这代系统以后,微软改用了文件映像系统安装方式、大幅的改进了系统部署过程中的各种控制项目,微软也提供了“Windows系统映像管理器(Windows System Image Manager,简称SIM)”来实现对Windows Vista/2008/7这代系统部署过程的控制,SIM所能管理的项目种类繁多,如果能够得心应手的使用SIM那么对系统各方面的控制将会达到一个不错的高度。

SIM用来生成一个XML文件,此文件可以用于普通系统安装或系统封装部署中的各种控制项目,我们讨论的是系统封装与部署,所以今天我们所讨论关于SIM的使用均是以“为实现更方便快捷的系统封装与部署”为核心来进行的。有关SIM的进一步使用,请大家逐步摸索,今天我们只研究在系统封装部署最常用的部分。

XWAIK中包含很多与Windows系统映像定制相关的内容,包括完整全面的帮助文档,选中不解的部分F1一下会更快得到答案。

(一)SIM的基本使用

下载WAIK,安装完毕后,打开SIM,进入如下界面:

菜单栏,【文件】,【新建应答文件】,这时会提示:

单击【是】,选择系统映像(Windows7的系统映像可以到Windows7系统光盘的source目录提取):

选中系统映像,SIM经过检测后会询问你要以这个映像中的哪个版本为依据进行设置,选择与您对应的版本,例如Ultimate

【确定】后SIM会有相应的改变:

SSIM中我们最常用的有:

1、左下角的【Windows 映像】,这里可以选择我们要进行设定的模块-

2、中间靠上部分的【应答文件】,这里我们会以树状结构预览到我们的各项设定,包括如下时机:

(1)【windowsPE】,众所周知Windows7在安装前会启动一个WINPE环境以执行系统安装,这个设定就是关于这个PE的

(2)【offlineServicing】,这部分设定是关于离线服务的,一般用不到

(3)【generalize】,这部分设定很重要,关于一般系统部署过程的

(4)【sepcialize】,这部分设定很重要,关于特殊系统部署过程的

(5)【auditSystem】和【auditUser】,这两部分是关于系统审核的,一般用不到

(6)【oobeSystem】,这部分设定很重要,关于OOBE过程的

3、右侧的【属性】,这里用于设定每个选项的具体属性

SIM遵循这样一种过程,在【Windows 映像】中选择要设定的模块,将选中的模块传送到【应答文件】中适当的实机,后在【属性】中对刚刚传送来的实机进行详细设定。"

下面我就以实例讲解使用SIM的一般过程:

第一,添加要在“部署中”调用的程序

【Windows 映像】Components中选择“Windows-Deployment”模块,并右键单击其下的:“RunSynchronous”子模块,单击【添加设置传送到sepcialize】

(RunSynchronous和RunAsynchronous的功能是相同的,都是添加调用程序,但RunSynchronous是逐个运行的,而RunAsynchronous是不等待上一个运行结束即运行下一个的)

右键【应答文件】中刚传送来的RunSynchronous,单击【插入新建RunSynchronousCommand】,以创建新的调用

单击刚刚添加的RunSynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:

Description(描述):我们设定为“InDeploy”

Order(被调用的顺序):我们设定为“1”

Path(要调用的程序名):我们设定为“%WinDir%\Test -InDeploy”

如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性'

第二,添加“首次登录”调用的程序

【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“FirstLogonCommands”子模块,单击【添加设置传送到oobeSystem】

右键【应答文件】中刚传送来的FirstLogonCommands,单击【插入新建SynchronousCommand】,以创建新的调用

单击刚刚添加的SynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:$ j6 z: A/ [3 e% n- l. i" C. ]! a

Description(描述):我们设定为“FirstLogon”

LOrder(被调用的顺序):我们设定为“1”

CommandLine(要调用的程序名):我们设定为%WinDir%\Test.exe -FirstLogon”

如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性

第三,添加“进入桌面后”调用的程序

【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“LogonCommands”子模块,单击【添加设置传送到oobeSystem】

右键【应答文件】中刚传送来的LogonCommands,单击【插入新建AsynchronousCommand】,以创建新的调用

单击刚刚添加的AsynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:

Description(描述):我们设定为“Go2Desktop”

Order(被调用的顺序):我们设定为“1”

CommandLine(要调用的程序名):我们设定为“%WinDir%\Test.exe -Go2Desktop”

如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性

第四,添加OOBE阶段设定项目

【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“OOBE”子模块,单击【添加设置传送到oobeSystem】

单击刚传送到【应答文件】中的OOBE部分,查看右侧【属性】部分进一步设定:

HideEULAPage:设定为true,即为跳过协议界面;设定为false,则不跳过

HideWirelessSetupInOOBE:设定为true,即跳过OOBE中的无线设定部分;设定为false,则不跳过

NetworkLocation:有三个值,Home(家庭)、Work(工作)、Other,根据情况设定

ProtectYourPC:1、2、3三个值,对应自动获取所有补丁、自动获取重要补丁、不自动升级三个选项

SkipUserOOBE:跳过用户OOBE过程

通过这四个例子,我想大家对SIM的使用已经有了一定的熟悉,SIM中还有N多值可以设定,大家可以逐步尝试。如遇到不明确的内容,可以选中选项后按F1,WAIK有详细的帮助文档。

(二)Sysprep3.14的使用

自Windows Vista开始,微软更新了Sysprep程序,版本为3.14。新版Sysprep.exe与以往版本差异很大,参数如下:

复制代码

01./audit

02.重新启动计算机进入审核模式。审核模式使您可以将其他驱动程序或应用程序添加到 Windows。您还可以在将 Windows 安装发送给最终用户前对其进行测试。

03.如果指定了无人参与 Windows 安装程序文件,则 Windows 安装程序的审核模式将运行 auditSystem 和 auditUser 配置阶段。

04./generalize

05.准备要作为映像的 Windows 安装。如果指定此选项,所有唯一的系统信息将从 Windows 安装中删除。安全 ID (SID) 重置,所有系统还原点将被清除,事件日志也将被删除。

06.下次计算机启动时,将运行 specialize 配置阶段。将创建新的安全 ID (SID),如果用于 Windows 激活的时钟三次没有被重置,将其重置。

07./oobe

08.重新启动计算机进入“欢迎使用 Windows”模式。“欢迎使用 Windows”允许最终用户自定义其 Windows 操作系统、创建用户帐户、命名计算机和其他任务。在“欢迎使用 Windows”启动前,将立即处理答案文件中 oobeSystem 配置阶段的所有设置。

09./reboot

10.重新启动计算机。使用该选项审核计算机并确保首次运行体验正确工作。

11./shutdown

12.在 sysprep 命令完成运行后关闭计算机。

13./quiet

14.运行 Sysprep 工具而不显示屏幕确认消息。如果自动运行 Sysprep 工具,则使用该选项。

15./quit

16.运行指定命令后,关闭 Sysprep 工具。

17./unattend:answerfile

18.在无人参与安装期间,将答案文件中的设置应用到 Windows。

19./ Vanswerfile

20.指定要使用的答案文件的路径和文件名。

在无人参与安装期间,将答案文件中的设置应用到 Windows。

指定要使用的答案文件的路径和文件名。

读完这些参数的朋友应该注意的到了一点:/unattend:answerfile,举例:/unattend:D:\xxx.xml。到这里大家应该看明白了,微软新一代系统的部署并不是在系统部署过程中才去读取无人值守文件的内容,而是在系统封装时就将这些信息读入了,读入的方法正是使用sysprep3.14的命令行加以设定!

好的,下面我们就来看一个使用sysprep3.14封装系统的实例,以便于更深入的了解这个过程中要注意的问题。

我们在刚才是一共SIM生成无人职守应答文件时,设定了在部署中、首次登录、进桌面调用的名为Test的程序,这个程序我放在了附件里,有需要请下载。注意,如果设定了要运行不存在的程序,则系统部署过程中会直接报错,请特别注意。所以如果你按照刚才SIM的使用实例中设定了调用windows文件夹下的test.exe程序,那么务必在执行下述例子之前将test.exe放入windows文件夹。

1、将我们刚才生成的Untitled.xml放在D盘根目录下,打开命令提示符,运行如下命令:复制代码

01.c:\windows\system32\sysprep\sysprep.exe /oobe /generalize /quit /quiet /unattend:d:\Untitled.xml

2、运行成功,系统封装过程开始

由于我设定的是“/quit ”,所以封装后不会重启,在确认无其他调整后,手动重启计算机

3、系统部署到下图阶段时(部署中),会调用我们的test.exe运行

4、部署完毕进入系统,进入OOBE过程

5、OOBE结束,首次登录:

6、首次登录时调用我们的test.exe

7、首次进桌面调用我们的test.exe

到这里,我们就通过使用SIM,配合sysprep的命令行参数,完成了一次自动化封装,并对系统部署过程进行了简单的控制。

但我个人认为这并不完美:

1、几遍我们在SIM中设置了部分OOBE部分的自动应答,但OOBE过程还是过长,封装部署的目的就是快速,这个过程耽误了太多时间;

2、每次部署后都要新建用户,这对国内普遍使用Administrator登陆的习惯不符。

用过ES3_WIN7封装模块的朋友可能已经发现了,ES3_WIN7封装模块具有自动跳过OOBE和直接使用ADMIN登陆的能力,这大大提高了系统部署速度,简化了系统设置过程,直接减少了劳动量。这是怎么达到的?请听下回分解!