2024年1月23日发(作者:)

先说明一下几件事情

1、本人的出发点是从安装Windows XP之后的安全性考虑决定制作集成安装光盘的,而不是为了All In One或者其它什么;

2、本方法仅根据微软官方的知识库相关知识,加上本人对dos命令的研究所得,集成工作本身未使用其它第三方的工具(刻盘??废话当然需要刻录软件的支持啦)。

接下来进入正题,首先是准备工作

1、准备好XP的光盘和SP2,当然,已经集成好SP2的光盘也可以(什么,不知道如何集成??这个看后面我慢慢道来)

假设XP零售版的集成了SP2的光盘文件在D:2

2、准备好需要集成的小补丁

截至2006年10月16日,需要准备的小补丁有:

--->2个需要特别处理的

888302,891781

/download/8/2/3/823b5a41-6cfb-4a4f-aefa-3a66e517f447/

/download/5/7/c/57c31d5d-58ae-4414-95e1-46b48b938f6f/

--->40个可以批量集成的

/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/

/download/d/7/9/d79724a2-f6dd-41d1-ac91-db3c641e350b/

/download/a/d/0/ad08b5a7-4a6e-4a00-a2f7-862ef274420d/

/download/6/6/4/66447413-dc1e-4485-8163-dee0032e1145/

/download/e/5/d/e5d36b32-6f7c-45c1-82a7-3fa483442bda/

/download/1/3/2/13219fbd-224f-4c46-a223-b6fe3cfe328f/

/download/b/c/4/bc43aace-f085-4268-b693-890dc488f71b/

/download/b/b/c/bbc443be-7468-4af9-97fc-f6f5b32536ee/

/download/2/3/f/23fa4df0-6ad6-4650-af7f-27318805fbb4/

/download/0/b/1/0b1f0c79-950e-4b64-8da0-3dd8e916efaa/

/download/0/8/7/08728ce9-67db-4a77-bd6a-9616f45074a2/

/download/d/3/a/d3ad5ea5-6971-41fd-a1eb-4b0e302bb6b5/

/download/3/3/9/339b7e44-d925-4ac4-b6bd-a0805fe92041/

- 1 -

/download/4/1/0/41054944-2438-4fb2-b1d5-785cd7c7c6cd/

/download/b/9/3/b937adb5-998c-4193-b30c-27617a9124f6/

/download/0/1/b/01b7b20d-41a3-4c7a-9796-8ab3a52b0230/

/download/1/1/0/110216c1-4659-45d1-87c6-38d520e628cf/

/download/d/a/2/da262325-f9f4-4ce2-9d5c-b2425afa501b/

/download/8/e/2/8e268ee9-2436-47d1-8546-b606f589e331/

/download/8/f/4/8f4e0e33-3bf4-474e-8ac1-926a5cd4f466/

/download/e/3/9/e395ce0f-82c6-4625-8c29-063a137092cd/

/download/d/3/5/d356b7ae-0283-4fef-849c-288693093fad/

/download/4/6/b/46bf4848-a039-429d-a222-6143a12e2cdd/

/download/6/0/d/60d4df74-90ff-4d8b-b7de-7ea88cce56fe/

/download/6/2/2/62259943-9b98-4521-bc18-7139cc5e877f/

/download/2/f/b/2fbc82a2-039f-4254-931b-7cfb65ad7135/

/download/a/5/0/a50caa2a-bc48-405c-9b25-31edfad59783/

/download/9/b/2/9b2e069e-0650-486b-b4f1-47785d492301/

/download/1/7/5/1758ecb2-f9ec-4e10-93fe-001ad50e2570/

/download/4/1/4/414fd3a8-f583-47f0-be16-1bf264d33b58/

/download/9/3/1/93147316-b587-473a-a45e-9c2be5b8dcf1/

/download/c/f/d/cfd916ef-46eb-493b-b144-522c6d507c81/

/download/4/9/b/49b771b1-09f5-4d44-b80c-6fbef9358d42/

/download/3/1/b/31be1ef4-18e0-44a1-bc80-1753b8b43528/

/download/6/8/e/68e8e7fd-dcee-47db-9600-3a0373fb035c/

- 2 -

/download/a/6/4/a64472d8-c066-4769-a24c-423e2d24823c/

/download/c/5/6/c56e193f-f2b1-4227-8fee-239090a8f22a/

/download/1/7/9/17940d71-46c6-4b7e-8e38-77f06ca29b1f/

/download/5/0/0/5005aeb8-0070-400a-8d1f-28c8d9ba0adb/

/download/6/1/2/612ae213-a101-4724-9f5e-1d510c031480/

文件下载完后,假设文件保存的情况如下:

XPSP2之后的需要特别处理的小补丁在E:WXPSP2_HotFixSP2_Hotfix1

XPSP2之后的可以批量集成的小补丁在E:WXPSP2_HotFixSP2_Hotfix2

当然,你把东西放在其它的目录也没关系。但注意,下载时请把需要手动集成的2个与后面的40个分开保存。

接下来先讲集成操作的分解动作

1、先讲集成安装

集成安装是指,可以使用/s或者/integrate命令开关,通过一条命令将补丁集成到XP安装光盘路径下的方法,具体的命令是

KBArticleNumber /integrate:path

按我们的路径,命令类似

E:WXPSP2_HotFixSP2_SP2_

/integrate:D:2

这个/s或者/integrate有个前提条件,要求补丁为使用 5.4.15.0 版或更高版本作为安装程序的软件更新

目前大部分的补丁都满足条件

如果有谁不会把SP2集成到原版光盘,也可以用类似这个命令的办法实现

我们来试着运行一下会发现,补丁先自动解开,然后过了一阵提示已经集成完毕,并且需要按确定。

补丁还有一个开关命令/passive,加上这个开关命令后,命令将以无人参与方式运行,无须确认。

2、对需要特别处理集成的小补丁进行集成

为什么要特别处理,根据微软的知识库描述,其实这个是这2个小补丁的一个bug

在集成完SP2的XP光盘文件夹i386路径下有个,这个文件中有一行为

INSTALL_LANGUAGE="0804"

而这2个小补丁不认"0804",将其改为"804"则能认

因此,我们需要进行修改

修改完毕后,可用

E:WXPSP2_HotFixSP2_

/integrate:D:2_HotFix

E:WXPSP2_HotFixSP2_

/integrate:D:2_HotFix

2条命令将它们进行集成,然后为了防止今后出什么意外的错,再把改过的内容改回来

- 3 -

3、现在我们来看如何将40个(将来可能更多)补丁用一条命令完成集成

先来看这条命令dir E:WXPSP2_HotFixSP2_S_HotFix*.exe /b

这条命令将返回在E:WXPSP2_HotFixSP2_S_HotFix下面所有的.exe文件的文件名,注意,仅仅是文件名,没有修改日期、时间和大小等等。

接着,再来看这条命令

FOR /F usebackq %i IN (`dir E:WXPSP2_HotFixSP2_S_HotFix*.exe /b`) DO start /wait

E:WXPSP2_HotFixSP2_S_HotFix%i /integrate:D:2 /passive

依次来解释具体的含义

DO——对一组文件中的每一个文件执行某个特定命令。

/F—— 表示处理对象是一组以回车作为分隔符的文件

usebackq——处理一对``里面的命令

%i——就是参数了

IN——包含在...之中的

dir *.exe /b——得到目录下全部exe的文件名,每行一个

连起来就是,对(FOR)目录下全部的exe文件(/F usebackq %i IN (`dir *.exe /b`)),执行无人参与方式集成(E:WXPSP2_HotFixSP2_S_HotFix%i /integrate:D:2 /passive)

其中,start /wait是用于启动一条命令,并且等待其结束再执行后续的命令,如果不加,则会出现n个补丁试图同时集成的情况,会造成集成失败的。

可以把这么复杂的命令,放到一个.bat文件中,但要注意,需要把%i修改为%%i,原因是.bat中的%i是另有含义的。

即FOR /F usebackq %%i IN (`dir E:WXPSP2_HotFixSP2_HotFix2*.exe /b`) DO start /wait

E:WXPSP2_HotFixSP2_HotFix2%%i /integrate:D:2 /passive

这样,运行这个.bat,就能把n个补丁一口气集成到目标路径。

讲完了分解动作,来讲一下我的想法

,我认为准备好的XP集成了SP2的目录不要直接把补丁打进去,而是复制一份后再打

原因是,如果直接打了,那么一旦以后出现某补丁A把某补丁B替换了、而补丁B已经被集成了的情况,则需要手工把集成了的补丁B的相关垃圾文件和垃圾信息删去,比较麻烦。

而不直接打,则只需要每次删除前次的集成目录后重新集成一次即可

基于这个想法,我给出一份全自动的补丁集成批处理文件,内容如下:

SETLOCAL

SET SP2CD=D:2

SET SP2_HotFixCD=D:2_HotFix

SET SP2Dir=E:WXPSP2_HotFixSP2

SET SP2HotFix1=E:WXPSP2_HotFixSP2_HotFix1

SET SP2HotFix2=E:WXPSP2_HotFixSP2_HotFix2

RD /S /Q %SP2_HotFixCD%

XCOPY /E /I %SP2CD% %SP2_HotFixCD%

REN %SP2_HotFixCD%

COPY %SP2HotFix1% %SP2_HotFixCD%

START /wait %SP2HotFix1% /integrate:%SP2_HotFixCD%

/passive

START /wait %SP2HotFix1% /integrate:%SP2_HotFixCD%

/passive

- 4 -

DEL %SP2_HotFixCD%

REN %SP2_HotFixCD%

FOR /F usebackq %%i IN (`dir %SP2HotFix2%*.exe /b`) DO START /wait %SP2HotFix2%%%i

/s:%SP2_HotFixCD% /passive

ENDLOCAL

如果你连集成了SP2的XP的光盘这点空间也想省掉,那么

假设放XP光盘的光驱为G:

SP2的补丁下载在E:WXPSP2_

那么.bat文件相应改为

SETLOCAL

SET XPCD=G:

SET SP2CD=D:2

SET SP2_HotFixCD=D:2_HotFix

SET SP2Dir=E:WXPSP2_HotFixSP2

SET SP2HotFix1=E:WXPSP2_HotFixSP2_HotFix1

SET SP2HotFix2=E:WXPSP2_HotFixSP2_HotFix2

RD /S /Q %SP2_HotFixCD%

XCOPY /E /I /V %XPCD% %SP2_HotFixCD%

START /wait %SP2Dir% -s:D:2_HotFix /passive

REN %SP2_HotFixCD%

COPY %SP2HotFix1% %SP2_HotFixCD%

START /wait %SP2HotFix1% /integrate:%SP2_HotFixCD%

/passive

START /wait %SP2HotFix1% /integrate:%SP2_HotFixCD%

/passive

DEL %SP2_HotFixCD%

REN %SP2_HotFixCD%

FOR /F usebackq %%i IN (`dir %SP2HotFix2%*.exe /b`) DO start /wait %SP2HotFix2%%%i

/s:%SP2_HotFixCD% /passive

ENDLOCAL

这样做节省了空间,但每次操作的时间会多很多

当然,不管你用了上面2个里面的哪个,前面分解动作里面提到的批处理文件都不需要了,而且需要把修改过的复制一份到E:WXPSP2_HotFixSP2_HotFix1

而批处理里面的环境参数,你可以修改为自己需要的(就是前面的那些SET XXX=YYYYY啦),光盘也可以换成VOL/OEM,不见得非用零售版(本人偏好零售版啦)

注意,不要使用+/&等在DOS下有特殊用途的字符

最后讲一下刻盘和补丁维护

先用UltraISO之类的将原版XP的光盘做一个.ISO光盘镜像文件,这个镜像应该是可以从光盘启动的

然后打开,把里面的东西全砍掉,再把D:2_HotFix里面的东西扔进去,保存,刻盘即可

将来有了新补丁,可以在WSUS里面查看到,请先根据WSUS给出的链接,把这些补丁下载下来,单独

- 5 -

保存(没有WSUS?那就去看MS的安全公告,比如/china/technet/security/bulletin/, 与此安全更新相关的常见问题解答 (FAQ) 中提到“此安全更新替代以前的一个安全更新。 下表列出了相应的安全公告 ID 和受影响的操作系统”,具体看那个表)

单独运行集成命令(不要加/passive),测试这些补丁是否能集成到D:2_HotFix

如果提示集成完毕,就把它移动到E:WXPSP2_HotFixSP2_HotFix2,如不能集成,则把这个补丁删除掉或者通过别的办法集成

然后看剩下这些补丁是否有替代了我们先前下载的补丁,如果有那么删除掉原先的那些

- 6 -