作者的MSN:nishun@msn.com
先说明一下几件事情
1、本人的出发点是从安装Windows XP之后的安全性考虑决定制作集成安装光盘的,而不是为了All In One或者其它什么;
2、本方法仅根据微软官方的知识库相关知识,加上本人对dos命令的研究所得,集成工作本身未使用其它第三方的工具(刻盘??废话当然需要刻录软件的支持啦)。
接下来进入正题,首先是准备工作
1、准备好XP的光盘和SP2,当然,已经集成好SP2的光盘也可以(什么,不知道如何集成??这个看后面我慢慢道来)
假设XP零售版的集成了SP2的光盘文件在D:\xp\Retail.SP2\
2、准备好需要集成的小补丁
截至2006年10月24日,需要准备的小补丁有(2006.10.24此处有更新,追加了很多):
--->需要特别处理的
873339,885626,885835,885836,886185,873339,888302,891781
[url]http://download.microsoft.com/download/7/8/b/78b59cf0-e39c-4a53-9c58-9efdb23b58da/WindowsXP-KB873339-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/b/7/2b75ebbf-ce4c-4595-8ddf-4d45e4c1ca18/WindowsXP-KB885626-v2-x86-chs.exe[/url]
[url]http://download.microsoft.com/download/c/5/9/c591d1dd-ed93-4a1a-94ce-ea3ebf9b1619/WindowsXP-KB885835-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/a/0/2a0acca0-41d9-4add-9fa4-2bee366c2608/WindowsXP-KB885836-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/1/e/61e0e420-d142-49b9-b83d-191233f3a7a2/WindowsXP-KB886185-x86-chs.exe[/url]
[url]http://download.microsoft.com/download/7/8/b/78b59cf0-e39c-4a53-9c58-9efdb23b58da/WindowsXP-KB873339-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/8/2/3/823b5a41-6cfb-4a4f-aefa-3a66e517f447/WindowsXP-KB888302-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/5/7/c/57c31d5d-58ae-4414-95e1-46b48b938f6f/WindowsXP-KB891781-x86-CHS.exe[/url]
--->56个可以批量集成的
[url]http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe[/url]
[url]http://download.microsoft.com/download/d/7/9/d79724a2-f6dd-41d1-ac91-db3c641e350b/WindowsXP-KB890046-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/a/d/0/ad08b5a7-4a6e-4a00-a2f7-862ef274420d/WindowsXP-KB890859-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/6/4/66447413-dc1e-4485-8163-dee0032e1145/WindowsXP-KB893756-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/e/5/d/e5d36b32-6f7c-45c1-82a7-3fa483442bda/WindowsXP-KB894391-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/f/a/4fa860fc-1bac-4762-839c-9f98d224edcd/WindowsXP-KB896358-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/1/6/d/16d83818-9fb2-469f-b317-0929e45479d4/WindowsXP-KB896423-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/0/3/3/03303215-9e40-4f91-a261-97a4ee0c1363/WindowsXP-KB896424-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/5/a/e/5aeb65c6-1f88-4b6a-ae1c-bcd279252a17/WindowsXP-KB896428-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/1/3/2/13219fbd-224f-4c46-a223-b6fe3cfe328f/WindowsXP-KB898461-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/c/f/2cf803e8-afc4-40e1-95e2-2ca5642e9adc/WindowsXP-KB899587-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/2/f/22f5f4d8-1781-4349-8454-7b411bbc1485/WindowsXP-KB899591-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/b/c/4/bc43aace-f085-4268-b693-890dc488f71b/WindowsXP-KB900485-v2-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/b/b/c/bbc443be-7468-4af9-97fc-f6f5b32536ee/WindowsXP-KB900725-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/3/f/23fa4df0-6ad6-4650-af7f-27318805fbb4/WindowsXP-KB901017-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/0/b/1/0b1f0c79-950e-4b64-8da0-3dd8e916efaa/WindowsXP-KB901190-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/0/8/7/08728ce9-67db-4a77-bd6a-9616f45074a2/WindowsXP-KB901214-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/d/3/a/d3ad5ea5-6971-41fd-a1eb-4b0e302bb6b5/WindowsXP-KB902400-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/3/9/6/396d6796-5773-4bc1-aa67-80b7d4507e8c/WindowsXP-KB904706-v2-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/3/3/9/339b7e44-d925-4ac4-b6bd-a0805fe92041/WindowsXP-KB905414-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/1/0/41054944-2438-4fb2-b1d5-785cd7c7c6cd/WindowsXP-KB905749-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/b/a/b/baba6a8e-9f4c-40a2-94c7-8b971fc9daa8/WindowsXP-KB908519-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/a/7/a/a7a33758-0018-421a-ab26-98070421be02/WindowsXP-KB908531-v2-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/b/9/3/b937adb5-998c-4193-b30c-27617a9124f6/WindowsXP-KB910437-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/0/1/b/01b7b20d-41a3-4c7a-9796-8ab3a52b0230/WindowsXP-KB911280-v2-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/5/a/a/5aa8efea-9f8e-4dd6-8fdb-76c8407c48b2/WindowsXP-KB911562-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/9/e/2/9e2e6e1d-773b-437e-a05b-6580afb2baaf/WindowsXP-KB911567-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/1/1/0/110216c1-4659-45d1-87c6-38d520e628cf/WindowsXP-KB911927-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/d/a/2/da262325-f9f4-4ce2-9d5c-b2425afa501b/WindowsXP-KB912919-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/8/e/2/8e268ee9-2436-47d1-8546-b606f589e331/WindowsXP-KB913446-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/8/f/4/8f4e0e33-3bf4-474e-8ac1-926a5cd4f466/WindowsXP-KB913580-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/f/5/c/f5cf608e-9e24-4040-8a07-838cf400fe0b/WindowsXP-KB914388-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/e/3/9/e395ce0f-82c6-4625-8c29-063a137092cd/WindowsXP-KB914389-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/d/3/5/d356b7ae-0283-4fef-849c-288693093fad/WindowsXP-KB916595-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/6/b/46bf4848-a039-429d-a222-6143a12e2cdd/WindowsXP-KB917344-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/0/d/60d4df74-90ff-4d8b-b7de-7ea88cce56fe/WindowsXP-KB917422-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/2/2/62259943-9b98-4521-bc18-7139cc5e877f/WindowsXP-KB917537-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/2/f/b/2fbc82a2-039f-4254-931b-7cfb65ad7135/WindowsXP-KB917953-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/a/5/0/a50caa2a-bc48-405c-9b25-31edfad59783/WindowsXP-KB918439-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/d/3/c/d3cc7608-0bad-4e53-b4a5-faad2015bf32/WindowsXP-KB918899-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/9/b/2/9b2e069e-0650-486b-b4f1-47785d492301/WindowsXP-KB919007-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/5/1/451b7332-82a9-4541-a034-1a76ac04e901/WindowsXP-KB920214-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/1/7/5/1758ecb2-f9ec-4e10-93fe-001ad50e2570/WindowsXP-KB920670-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/1/4/414fd3a8-f583-47f0-be16-1bf264d33b58/WindowsXP-KB920683-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/9/3/1/93147316-b587-473a-a45e-9c2be5b8dcf1/WindowsXP-KB920685-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/c/f/d/cfd916ef-46eb-493b-b144-522c6d507c81/WindowsXP-KB920872-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/4/9/b/49b771b1-09f5-4d44-b80c-6fbef9358d42/WindowsXP-KB921398-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/3/1/b/31be1ef4-18e0-44a1-bc80-1753b8b43528/WindowsXP-KB921883-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/8/e/68e8e7fd-dcee-47db-9600-3a0373fb035c/WindowsXP-KB922582-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/a/6/4/a64472d8-c066-4769-a24c-423e2d24823c/WindowsXP-KB922616-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/c/5/6/c56e193f-f2b1-4227-8fee-239090a8f22a/WindowsXP-KB922819-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/1/7/9/17940d71-46c6-4b7e-8e38-77f06ca29b1f/WindowsXP-KB923191-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/5/0/0/5005aeb8-0070-400a-8d1f-28c8d9ba0adb/WindowsXP-KB923414-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/f/0/7/f07ba1b4-1abc-4de7-a3c1-5a7e0eebaf3e/WindowsXP-KB924191-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/6/1/2/612ae213-a101-4724-9f5e-1d510c031480/WindowsXP-KB924496-x86-CHS.exe[/url]
[url]http://download.microsoft.com/download/7/6/3/763a8078-ba16-4137-a942-4948fcfc84ee/WindowsXP-KB925486-x86-CHS.exe[/url]
文件下载完后,假设文件保存的情况如下:
XPSP2之后的需要特别处理的小补丁在E:\WXPSP2_HotFix\SP2_Hotfix1
XPSP2之后的可以批量集成的小补丁在E:\WXPSP2_HotFix\SP2_Hotfix2
当然,你把东西放在其它的目录也没关系。但注意,下载时请把需要手动集成的2个与后面的40个分开保存。
接下来先讲集成操作的分解动作
1、先讲集成安装
集成安装是指,可以使用/s或者/integrate命令开关,通过一条命令将补丁集成到XP安装光盘路径下的方法,具体的命令是

CODE:[Copy to clipboard]KBArticleNumber /integrate:path
按我们的路径,命令类似

CODE:[Copy to clipboard]E:\WXPSP2_HotFix\SP2_Hotfix2\WindowsXP-KB924496-x86-CHS.exe /integrate:D:\XP\Retail.SP2\
这个/s或者/integrate有个前提条件,要求补丁为使用 Update.exe 5.4.15.0 版或更高版本作为安装程序的软件更新
目前大部分的补丁都满足条件
如果有谁不会把SP2集成到原版光盘,也可以用类似这个命令的办法实现
我们来试着运行一下会发现,补丁先自动解开,然后过了一阵提示已经集成完毕,并且需要按确定。
补丁还有一个开关命令/passive,加上这个开关命令后,命令将以无人参与方式运行,无须确认。
2、对需要特别处理集成的小补丁进行集成
为什么要特别处理,根据微软的知识库描述,其实这个是这几个小补丁的一个bug
在集成完SP2的XP光盘文件夹\i386路径下有个HIVESYS.inf,这个文件中有一行为

CODE:[Copy to clipboard]INSTALL_LANGUAGE="0804"
而这2个小补丁不认"0804",将其改为"804"则能认
因此,我们需要进行修改
修改完毕后,可用这几条命令将它们进行集成

CODE:[Copy to clipboard]E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB873339-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB885626-v2-x86-chs.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB885835-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB885836-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB886185-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB873339-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB888302-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
E:\WXPSP2_HotFix\SP2_Hotfix1\WindowsXP-KB891781-x86-CHS.exe /integrate:D:\XP\Retail.SP2_HotFix\
然后为了防止今后出什么意外的错,再把改过的内容改回来
3、现在我们来看如何将40个(将来可能更多)补丁用一条命令完成集成
先来看这条命令

CODE:[Copy to clipboard]dir E:\WXPSP2_HotFix\SP2_Hotfix2\*.exe /b
这条命令将返回在E:\WXPSP2_HotFix\SP2_Hotfix2\下面所有的.exe文件的文件名,注意,仅仅是文件名,没有修改日期、时间和大小等等。
接着,再来看这条命令

CODE:[Copy to clipboard]FOR /F usebackq %i IN (`dir E:\WXPSP2_HotFix\SP2_Hotfix\*.exe /b`) DO start /wait E:\WXPSP2_HotFix\SP2_Hotfix2\%i /integrate:D:\XP\Retail.SP2\ /passive
依次来解释具体的含义
FOR.......DO——对一组文件中的每一个文件执行某个特定命令。
/F—— 表示处理对象是一组以回车作为分隔符的文件
usebackq——处理一对``里面的命令
%i——就是参数了
IN——包含在...之中的
dir *.exe /b——得到目录下全部exe的文件名,每行一个
连起来就是,对(FOR)目录下全部的exe文件(/F usebackq %i IN (`dir *.exe /b`)),执行无人参与方式集成(E:\WXPSP2_HotFix\SP2_Hotfix\%i /integrate:D:\XP\Retail.SP2\ /passive)
其中,start /wait是用于启动一条命令,并且等待其结束再执行后续的命令,如果不加,则会出现n个补丁试图同时集成的情况,会造成集成失败的。
可以把这么复杂的命令,放到一个.bat文件中,但要注意,需要把%i修改为%%i,原因是.bat中的%i是另有含义的。

CODE:[Copy to clipboard]FOR /F usebackq %%i IN (`dir E:\WXPSP2_HotFix\SP2_HotFix2\*.exe /b`) DO start /wait E:\WXPSP2_HotFix\SP2_HotFix2\%%i /integrate:D:\XP\Retail.SP2\ /passive
这样,运行这个.bat,就能把n个补丁一口气集成到目标路径。
讲完了分解动作,来讲一下我的想法,我认为准备好的XP集成了SP2的目录不要直接把补丁打进去,而是复制一份后再打
原因是,如果直接打了,那么一旦以后出现某补丁A把某补丁B替换了、而补丁B已经被集成了的情况,则需要手工把集成了的补丁B的相关垃圾文件和垃圾信息删去,比较麻烦。
而不直接打,则只需要每次删除前次的集成目录后重新集成一次即可
基于这个想法,我给出一份全自动的补丁集成批处理文件,内容如下:

CODE:[Copy to clipboard]SETLOCAL
SET SP2CD=D:\XP\Retail.SP2
SET SP2_HotFixCD=D:\XP\Retail.SP2_HotFix
SET SP2Dir=E:\WXPSP2_HotFix\SP2
SET SP2HotFix1=E:\WXPSP2_HotFix\SP2_HotFix1
SET SP2HotFix2=E:\WXPSP2_HotFix\SP2_HotFix2
IF EXIST %SP2_HotFixCD% RD /S /Q %SP2_HotFixCD%
XCOPY /E /I %SP2CD% %SP2_HotFixCD%
REN %SP2_HotFixCD%\i386\HIVESYS.INF HIVESYS.bak
COPY %SP2HotFix1%\HIVESYS.INF %SP2_HotFixCD%\i386\HIVESYS.INF
FOR /F usebackq %%i IN (`dir %SP2HotFix1%\*.exe /b`) DO START /wait %SP2HotFix1%\%%i /s:%SP2_HotFixCD%\ /passive
DEL %SP2_HotFixCD%\i386\HIVESYS.INF
REN %SP2_HotFixCD%\i386\HIVESYS.bak HIVESYS.INF
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_HotFix\SP2\WindowsXP-KB835935-SP2-CHS.exe
那么.bat文件相应改为

CODE:[Copy to clipboard]SETLOCAL
SET XPCD=G:
SET SP2CD=D:\XP\Retail.SP2
SET SP2_HotFixCD=D:\XP\Retail.SP2_HotFix
SET SP2Dir=E:\WXPSP2_HotFix\SP2
SET SP2HotFix1=E:\WXPSP2_HotFix\SP2_HotFix1
SET SP2HotFix2=E:\WXPSP2_HotFix\SP2_HotFix2
IF EXIST %SP2_HotFixCD% RD /S /Q %SP2_HotFixCD%
XCOPY /E /I /V %XPCD% %SP2_HotFixCD%
START /wait %SP2Dir%\WindowsXP-KB835935-SP2-CHS.exe -s:D:\XP\Retail.SP2_HotFix /passive
REN %SP2_HotFixCD%\i386\HIVESYS.INF HIVESYS.bak
COPY %SP2HotFix1%\HIVESYS.INF %SP2_HotFixCD%\i386\HIVESYS.INF
FOR /F usebackq %%i IN (`dir %SP2HotFix1%\*.exe /b`) DO START /wait %SP2HotFix1%\%%i /s:%SP2_HotFixCD%\ /passive
DEL %SP2_HotFixCD%\i386\HIVESYS.INF
REN %SP2_HotFixCD%\i386\HIVESYS.bak HIVESYS.INF
FOR /F usebackq %%i IN (`dir %SP2HotFix2%\*.exe /b`) DO start /wait %SP2HotFix2%\%%i /s:%SP2_HotFixCD%\ /passive
ENDLOCAL
这样做节省了空间,但每次操作的时间会多很多
当然,不管你用了上面2个里面的哪个,前面分解动作里面提到的批处理文件都不需要了,而且需要把修改过的HIVESYS.INF复制一份到E:\WXPSP2_HotFix\SP2_HotFix1
而批处理里面的环境参数,你可以修改为自己需要的(就是前面的那些SET XXX=YYYYY啦),光盘也可以换成VOL/OEM,不见得非用零售版(本人偏好零售版啦)
注意,不要使用+/&等在DOS下有特殊用途的字符
最后讲一下刻盘和补丁维护
先用UltraISO之类的将原版XP的光盘做一个.ISO光盘镜像文件,这个镜像应该是可以从光盘启动的
然后打开,把里面的东西全砍掉,再把D:\XP\Retail.SP2_HotFix\里面的东西扔进去,保存,刻盘即可
将来有了新补丁,可以在WSUS里面查看到,请先根据WSUS给出的链接,把这些补丁下载下来,单独保存(没有WSUS?那就去看MS的安全公告,比如 [url]http://www.microsoft.com/china/technet/security/bulletin/ms06-063.mspx[/url], 与此安全更新相关的常见问题解答 (FAQ) 中提到“此安全更新替代以前的一个安全更新。 下表列出了相应的安全公告 ID 和受影响的操作系统”,具体看那个表)
单独运行集成命令(不要加/passive),测试这些补丁是否能集成到D:\XP\Retail.SP2_HotFix
如果提示集成完毕,就把它移动到E:\WXPSP2_HotFix\SP2_HotFix2\,如不能集成,则把这个补丁删除掉或者通过别的办法集成
然后看剩下这些补丁是否有替代了我们先前下载的补丁,如果有那么删除掉原先的那些