发新话题
打印

补丁集成的问题

补丁集成的问题

大家好,我想问一个这样的问题,我做的系统盘是集成补丁的,目录结构如下,
$oem$\cmdlines.txt  insthfs.bat
$oem$\$1\install\hotfixes\kb82831.exe kb823559.exe
cmdlines.txt内容如下:"cmd /c start /min cmd /c .\INSTHFS.bat"
insthfs.bat内容如下:
cls
@echo off
ECHO.
ECHO 安装SP1后的系统安全补丁,请等待。。。。
ECHO Installing KB828741...
start /wait %systemdrive%\install\Hotfixes\KB828741.exe /Q /M /Z
ECHO.

ECHO Installing KB837001...
start /wait %systemdrive%\install\Hotfixes\KB837001.exe /Q /M /Z
ECHO.
EXIT
我用EASYBOOT集成完后,在安装完系统的时候可以在C盘看到文件但是没有安装这些补丁,想知道为什么呀

TOP

更正一下,是kb828741.exe和kb837001.exe另外想知道,/q/m/z/n各是什么意思

TOP

自己顶起来,没有会的吗,我现在只想知道Q M N R这几个参数的做用,另外还有没有其他的参数.

TOP

上面的问题我已解决 另外,还有个问题想问一下,用上面的这种方法来安装补丁,也就是说在系统安装还有12分钟时进行,可是补丁太多,有40多个,安不完呀,还有其他的办法吗

TOP

建议使用杨大侠《软件安装管理器》,在cmdlines.txt里调用 。采用软件安装管理器在T12的时候出现,一旦出现,这个时候XP的安装将不会继续,非要等软件安装管理器退出了,才会继续。此时此刻,就有时间从容地安装完所有补丁。

软件安装管理器,可以上网搜索一下,版本为3322。事先要做好补丁批处理的设置,并修改那个ini文件设置 。我制作的XP盘仅是在T12时,导入一些优化用的注册表,而没有去打补丁,所以具体也没有这么操作过。但我看到别人是这么做过。

你可以试试看。

TOP

深度介绍:放弃命令行批处理文件,改用RunOnceEx

在同步安装软件和驱动时,存在显示安装进程的界面是批处理窗口、与系统安装的图形界面不相衬的问题!对此有一种方法,能够用更有序也更专业的RunOnceEx窗口显示进程。做到这一点并不难,只是有人对创建RunOnceEx.cmd文件有些发怵,感到太过复杂;所幸有人编写了一个小工具RunOnceEx.cmd Creator来完成这一“艰巨”的任务。

1. RunOnceEx原理
系统注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\键具有如下特性:其下的各种参数,在下一次登录系统时发挥作用,然后自动删除,使得这些参数只发挥一次作用。因此,可在安装系统时向注册表RunOnceEx键导入软件和驱动安装信息,完成系统安装后第一次登录时,启动软件和驱动安装进程。
需要指出的是,要使用RunOnceEx方法,最好将winnt.sif的[GuiRunOnce]字段删除。虽然这两种方式可以同时使用,但却存在着同时运行、发生冲突的风险,还是小心为佳。

2. 定制RunOnceEx同步安装任务方案
采用RunOnceEx方法的一个重要环节,是在系统安装进程中向注册表导入软件和驱动安装任务方案(参数)。可向cmdlines.txt加入以下命令,在系统安装进行到T12时,指令RunOnceEx.cmd将自身包含的全
—————————————————————
[COMMANDS]
"RunOnceEx.cmd"
—————————————————————
部信息通过REG.exe导入注册表。这种导入方法允许使用%systemdrive%环境变量;而利用*.reg文件的方法却只能指定分区盘符,如果系统分区不是C盘就不适用了。
RunOnceEx.cmd文件必须包含软件和驱动安装任务的全部参数。以下是一个典型例子:
———————————————————————————————————————————
cmdow @ /HID
@echo off
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Installing Applications" /f
REG ADD %KEY%\005 /VE /D "Adobe Reader 6" /f
REG ADD %KEY%\005 /V 1 /D "%systemdrive%\install\AdobeReader6\AR6.msi /qn" /f
REG ADD %KEY%\010 /VE /D "Alcohol 120" /f
REG ADD %KEY%\010 /V 1 /D "%systemdrive%\install\alcohol\setup.exe /qn" /f
REG ADD %KEY%\010 /V 2 /D "REGEDIT /S %systemdrive%\install\alcohol\register.reg" /f
REG ADD %KEY%\015 /VE /D "Diskeeper 8" /f
REG ADD %KEY%\015 /V 1 /D "%systemdrive%\install\DiskeeperPro_8.0.459.exe /s /v/qn" /f
REG ADD %KEY%\020 /VE /D "DU Meter 3" /f
REG ADD %KEY%\020 /V 1 /D "%systemdrive%\install\dumeter3.exe /VERYSILENT /SP-" /f
REG ADD %KEY%\025 /VE /D "IsoBuster 1.5" /f
REG ADD %KEY%\025 /V 1 /D "%systemdrive%\install\IsoBuster1.5.exe /VERYSILENT /SP-" /f
REG ADD %KEY%\025 /V 2 /D "taskkill /F /IM isobuster.exe" /f
REG ADD %KEY%\030 /VE /D "Kerio Personal Firewall 2.1.5" /f
REG ADD %KEY%\030 /V 1 /D "%systemdrive%\install\KPF\Setup.exe -s" /f
REG ADD %KEY%\035 /VE /D "MDAC 2.7 SP1 Hotfix" /f
REG ADD %KEY%\035 /V 1 /D "%systemdrive%\install\mdac\mdac.cmd" /f
REG ADD %KEY%\040 /VE /D "MSN Messenger 6.1" /f
REG ADD %KEY%\040 /V 1 /D "%systemdrive%\install\MSN_Messenger_6.1.0202.msi /qn" /f
REG ADD %KEY%\045 /VE /D "Nero Burning ROM 5.5" /f
REG ADD %KEY%\045 /V 1 /D "REGEDIT /S %systemdrive%\install\nero\register.reg" /f
REG ADD %KEY%\045 /V 2 /D "%systemdrive%\install\Nero\Nero551054.exe /silent /noreboot" /f
REG ADD %KEY%\050 /VE /D "Importing Registry Tweaks" /f
REG ADD %KEY%\050 /V 1 /D "REGEDIT /S %systemdrive%\install\regtweaks.reg" /f
REG ADD %KEY%\055 /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\055 /V 1 /D "%systemdrive%\install\cleanup.cmd" /f
EXIT
———————————————————————————————————————————
定制同步安装软件和驱动的任务方案,只须根据实际情况修改上例中的编号和引号中的内容,复制到一个文本文件中,保存为RunOnceEx.cmd,再放到 C:\XPCD\$OEM$\ 中。在命令行模式下运行REG ADD /?,可以了解到更多的信息。
小技巧:相邻注册表键之间的编号以5为间隔,这样可为添加其它安装任务预留空间,例如在001与005之间可以添加002、003或004。尽可以根据需要自定义间隔数,每个任务都将按照编号顺序执行。

3. RunOnceEx.cmd有关命令行的说明
cmdow @ /HI
有人开发了一个小工具cmdow.exe,用于隐藏命令行窗口。cmdow @ /HID的作用是:向注册表导入参数时也不出现批处理执行窗口。为此必须将cmdow.exe工具放到 C:\XPCD\$OEM\$$\System32\文件夹中,使得系统安装进程能将其复制到\Windows\System32,随后可从任何地方调用而不须指定具体路径。
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
将HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx 设为变量,命名为%KEY%,这样就不需要每次都为REG ADD指定具体路径了。
REG ADD %KEY% /V TITLE /D "Installing Applications" /f
设定窗口的标题,被引号引用的词语可以自定义。
REG ADD %KEY%\010 /VE /D "Alcohol 120" /f
该命令设置了你当前处理的任务的名称,以及在RunOnceEx窗口上显示的名称。
REG ADD %KEY%\010 /V 1 /D "%systemdrive%\install\alcohol\setup.exe /qn" /f
REG ADD %KEY%\010 /V 2 /D "REGEDIT /S %systemdrive%\install\alcohol\register.reg" /f
可以使用/V 1, 2, 3等为"Alcohol 120"指派多个任务。正如你在RunOnceEx截图中看到的,标题前的箭头在当前任务完成之前不会移动到下一个任务上。

4. 在RunOnceEx.cmd使用引号问题
在RunOnceEx.cmd文件中,如果一个REG ADD项目中包含引号,一般情况该项目便不会被导入注册表。但有些要导入的信息本身也有引号,如软件安装开关参数等,对此应在每个引号前加上反斜线\,例如:
%KEY%\005 /V 1 /D "\"%systemdrive%\install\AdobeReader6\Adobe Reader 6.msi\" /qn" /f
这样就可以将包含引号的参数导入注册表了。
如果某些导入注册表的参数带有一系列带引号,请考虑将该参数放到一个单独的.cmd文件中,而不是直接从RunOnceEx执行。因为直接在RunOnceEx中使用大量带有引号的参数,可能使得整个文件晦涩难懂。

5. 关于Cleanup.cmd
上述RunOnceEx.cmd文件的最后一行,涉及一个文件Cleanup.cmd,目的是用它完成那些直接使用RunOnceEx.cmd中的REG ADD项目会造成麻烦的任务,如删除安装软件和驱动时所使用的临时文件和文件夹等。Cleanup.cmd可以包含delete以及reboot命令:
——————————————————————————————
cmdow @ /HID
shutdown.exe -r -f -t 60 -c "Windows XP will now restart in 1 minute..."
net user aspnet /delete
DEL "%systemroot%\*.bmp"
DEL "%systemroot%\Web\Wallpaper\*.jpg"
DEL "%systemroot%\system32\dllcache\*.scr"
DEL "%systemroot%\system32\*.scr"
DEL "%AllUsersProfile%\Start Menu\Windows Update.lnk"
DEL "%AllUsersProfile%\Start Menu\Set Program Access and Defaults.lnk"
DEL "%AllUsersProfile%\Start Menu\Windows Catalog.lnk"
RD /S /Q %systemdrive%\drivers\
RD /S /Q %systemdrive%\install\
EXIT
——————————————————————————————

6. 测试RunOnceEx.cmd
可以通过双击运行RunOnceEx.cmd对其进行测试。该文件的唯一作用就是向注册表导入参数。双击该文件,看到一个命令行窗口一闪后,打开注册表编辑器,查看系统注册表的如下键值,确认一切无误后要
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\
删除RunOnceEx.cmd刚刚导入的参数,因为下次启动电脑、登录系统时并不需要执行它们。

7.从光盘上运行RunOnceEx
可以不必把安装文件复制到硬盘上,直接从光盘文件夹中同步安装软件和驱动。为此需要使系统安装进程准确找到光驱盘符,其方法是在RunOnceEx.cmd文件中加入一些IF、 EXIST语句。
用记事本中打开RunOnceEx.cmd,在@echo off后输入下列语句,再创建一个名为CD.txt的空白文件,
————————————————————
IF EXIST D:\CD.txt set CDROM=D:
IF EXIST E:\CD.txt set CDROM=E:
IF EXIST F:\CD.txt set CDROM=F:
IF EXIST G:\CD.txt set CDROM=G:
IF EXIST H:\CD.txt set CDROM=H:
IF EXIST I:\CD.txt set CDROM=I:
IF EXIST J:\CD.txt set CDROM=J:
————————————————————
保存到光盘的根目录下。这样就可以通过IF EXIST语句扫描所有指定的驱动器盘符,找到CD.txt文件后,就可将环境变量%CDROM%指向所在盘符。
同时,要将软件和驱动安装文件从\XPCD\$OEM$\$1\install\文件夹中移出,放到另一个文件夹里,比如\XPCD\Software\;该文件夹完全可以根据自己的习惯命名。
改变软件和驱动安装文件的路径后,要将RunOnceEx.cmd中的所有%systemdrive%改为%CDROM%,并调整其中的安装文件的路径,例如:%CDROM%\Software\MSN_Messenger.msi /qn
以上就是需要做的全部工作!RunOnceEx.cmd会通过扫描判断光驱盘符,设置正确的%CDROM%环境变量,同时该盘符会被导入注册表。
最终的结果应当是:
———————————————————————————————————————————
cmdow @ /HID
@echo off
IF EXIST D:\CD.txt set CDROM=D:
IF EXIST E:\CD.txt set CDROM=E:
IF EXIST F:\CD.txt set CDROM=F:
IF EXIST G:\CD.txt set CDROM=G:
IF EXIST H:\CD.txt set CDROM=H:
IF EXIST I:\CD.txt set CDROM=I:
IF EXIST J:\CD.txt set CDROM=J:
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Installing Applications" /f
REG ADD %KEY%\001 /VE /D "Preparing Installation..." /f
REG ADD %KEY%\001 /V 1 /D "%CDROM%\Software\prepare.cmd" /f
REG ADD %KEY%\015 /VE /D "Alcohol 120 Percent" /f
REG ADD %KEY%\015 /V 1 /D "%CDROM%\Software\alcohol\setup.exe /qn Reboot=Suppress" /f
REG ADD %KEY%\015 /V 2 /D "REGEDIT /S %CDROM%\Software\alcohol\register.reg" /f
REG ADD %KEY%\025 /VE /D "Diskeeper 8.0.478" /f
REG ADD %KEY%\025 /V 1 /D "%CDROM%\Software\Diskeeper\DiskeeperPro_8.0.478.exe /s /v/qn" /f
EXIT
———————————————————————————————————————————

需要注意的是:%CDROM%环境变量并不是永久的,并且只有在cmd文件运行过程中才有效,但只要IF、 EXIST语句和REG ADD项目在同一个cmd文件中,就能够找到光驱。换句话说,在运行另一个cmd文件并要访问光盘上的文件时,那个cmd文件也需要包括IF、EXIST语句。

TOP

哈哈,这里也有高人吗,先收下啦,看看之后再来说一声如何

TOP

太复杂啦

TOP

引用:
原帖由 胡亮 于 2006-1-3 09:10 发表
太复杂啦
要想玩 OEM 同步安装,还想漂亮一点,就不能怕麻烦,否则安完系统后一个一个地装补丁、装软件吧!

TOP

再送上我的 RunOnceEx.cmd 供参考....
复制内容到剪贴板
代码:

TOP

发新话题