[原创]解决用Xpinstall安装KB81117出现无效参数打断自动安装问题
[这个贴子最后由benjaminwan在 2004/03/20 10:48pm 第 2 次编辑]
方法一
:不装这个补丁(SP2都已经发布到Build 208了,何必为这样一个补丁大伤脑筋)
方法二
: 解压kb817778.exe到文件夹,比如kb817778
找个大小为267 KB (273,408 字节)的update.exe替换kb817778\update下的update.exe<----421 KB (431,104 字节)
267 KB的update.exe可以从其它补丁中取得,比如Q323255_WXP_SP2_x86_CHS.exe
如果你不在乎它占多少空间的话,看到这里就行了,接下来用....\update.exe /u /z /n /q 即可解决问题
方法三
: 思路,将kb817778文件夹内的文件用现成的工具做成自解压文件,并在安装时可以使用,自解压格式有很多种,
zip、rar、cab等,但在安装时被支持的似乎只有microsoft自家的cab,就用系统自带的iexpress,压缩后的文件形式与WMP9一样
但是用iexpress压缩的文件,解压后只能用一层目录,而KB817778内有两层目录,并且update.exe检测到当前目录名不是update
时就会报错,所以就将kb817778\update\下的文件和kb81778\下的文件分别压缩,在安装时用XPinstall执行两个自解压文件,按
其原来的样子释放,再用XPinstall调用update.exe进行安装就行了。
步骤一:解压kb817778.exe到文件夹,比如kb817778
找个大小为267 KB (273,408 字节)的update.exe替换kb817778下的update.exe<----421 KB (431,104 字节)
267 KB的update.exe可以从其它补丁中取得,比如Q323255_WXP_SP2_x86_CHS.exe
步骤二
:运行C:\WINDOWS\system32\iexpress.exe或直接运行iexpress.exe(我用的是XP系统)
顺便提一下,它需要C:\WINDOWS\system32\wextract.exe和C:\WINDOWS\system32\makecab.exe这两个文件
弹出的第一个窗口:选第一项Create new Self Extraction Directive file.下一步
接下来的package purpose选第二项:Extract files only 下一步
然后Package title随便输入 比如kb817778 下一步
Confirmation prompt选第一项:No prompt 下一步
License agreement选第一项:Do not display a license 下一步
Paceaged files 按Add选择kb817778文件夹中除了update文件夹内的所有文件 下一步
Show window 选第二项Hidden 下一步
Finished message 选第一项No message. 下一步
Package Name and Options 按Browse,选择生成的文件放置位置和文件名(假设为kb817778.exe),其他选项默认 下一步
Save Self Extraction Directive(保存自解压文件的配置文件)选第二项Don't save 下一步 下一步 完成
按照同样的方法将KB817778\update文件夹内的文件做成自解压文件,假设叫update.exe
步骤三
: 参考命令:file name='Extracting KB817778...' command='execute' program='#SYSTEMDRIVE#\install\hotfixes\KB817778.exe' arguments='/Q /C /T:#SYSTEMDRIVE#\install\KB817778'
file name='Extracting update...' command='execute' program='#SYSTEMDRIVE#\install\hotfixes\update.exe' arguments='/Q /C /T:#SYSTEMDRIVE#\install\KB817778\update'
file name='Installing KB817778...' command='execute' program='#SYSTEMDRIVE#\install\KB817778\update\update.exe' arguments='/u /z /n /q'
猜测:发生指定无效程序参数错误可能是KB817778在安装过程中调用了C:\WINDOWS\system32\sysocmgr.exe这个程序
另
:不排除有更好的方法可以解决这个问题(除了方法一外),如果你已经找到了更好的方法,请将之post出来。
最后:判断在正常情况下补丁(可以是任意补丁)是否成功安装其标准是什么?(采用不备份安装方式)
我的标准是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix下存在相应的补丁名称键值,并在硬盘上存在相应的文件(update.inf内[CopyAlways.XXXX.files]内所指定的文件)