繁体中文
设为首页
加入收藏
当前位置:技术首页 >> 安全 >> 系统和数据 >> 深度分析Windows2003自动升级补丁功能

深度分析Windows2003自动升级补丁功能

2006-11-29 13:28:15  作者:雪焰  来源:  浏览次数:94  文字大小:【】【】【
简介:由于Windows主要有两类不同的补丁程序,需要使用不同的参数,一旦参数错误,会导致无法安装,所以对不同补丁需要使用不同的参数。我们来具体分析一下。
有读者反映使用批处理Windows自动升级文件有问题。有些补丁包安装时出现了错误提示,无法继续。
 …过研究,发现这是由于Windows主要有两类不同的补丁程序,需要使用不同的参数,一旦参数错误,会导致无法安装,所以对不同补丁需要使用不同的参数。我们来具体分析一下。

  从图片看补丁类型


  如图1,把Windows 2003 Server的补丁文件放在同一个目录,



深度分析Windows2003自动升级补丁功能
图1


  可以清楚地看到补丁文件名字前面的图标有两种类型,一种是简单的可执行文件图标,另外一种是标志压缩文件的可执行文件图标。


深度分析Windows2003自动升级补丁功能


图2



     从属性分析格式


  WindowsServer2003-KB823559-x86-ENU.exe文件的图标是一个简单的可执行文件图标。从图2中可以看到该补丁的帮助信息,发现它使用微软的update程序来安装补丁。从图3可以查看该补丁的版本信息,它是由SFXCAB.EXE制作而成,所有其他具有普通可执行文件图标的补丁程序都有类似性质。


深度分析Windows2003自动升级补丁功能(2)
图3


  DirectX9-KB819696-x86-ENU.exe文件的图标是一个标志压缩文件的可执行文件图标,可以查看该补丁的帮助信息。它所认识的参数不包括/U和/Z,如果使用/U 参数来运行就会产生错误。同样,查看该补丁的版本信息,可以看出DirectX9-KB819696-x86-ENU这个补丁是由WEXTRACT.EXE而来的,所有其他的具有标志压缩文件的可执行文件图标的补丁程序也都有类似特征。


  现在很清楚了Windows有两类不同的补丁,使用不同的补丁程序,需要参数也不一样。


  自动分清补丁的格式


  如何在批处理文件中区分这两类不同的补丁呢?最稳妥的办法是找一个小程序检测补丁文件资源信息,如果补丁资源中包括了一个标志压缩文件的可执行文件图标,那么该补锻是第二类补丁,仅仅使用/Q参数,如果补丁资源中不包括图标,那么就是第一类补丁,可以使用/U /Q /Z参数来安装补丁。


  这里给出一个更简单的方法,仅仅使用Windows的内部命令,不需要额外程序了。查找补丁文件中的特征字符串,如果一个字符串仅仅在某一类补丁程序中存在,就可以根据这个来区分补丁的类型。


  第一步:如图4,用文本编辑器分别打开WindowsServer2003-
  KB823559-x86-ENU.exe 文件和DirectX9-KB819696-x86-ENU.exe文件,可以找到很多特征字符串,如字符串“_SFX_CAB_EXE_PATH”仅仅存在于SFXCAB.EXE类型的补丁中,而字符串“CABINET”和“WEXTRACT”仅仅存在于WEXTRACT.EXE类型的补丁文件中。所以可以用查找字符串的方法来决定补丁文件的类型。


深度分析Windows2003自动升级补丁功能(2)
图4


  第二步:在“开始→运行”菜单中输入“cmd”,然后进入补丁所在文件夹,运行如下命令,就可以指明该补丁文件需要的参数:


  (@findstr _SFX_CAB_EXE_PATH 补丁文件名字 >nul && @echo 参数 /U /Q /Z) || @echo 参数 /Q


  上面命令的意思是如果查找到字符串_SFX_CAB_EXE_PATH,就说明补丁使用 /U /Q /Z参数 ,否则使用/Q参数。


  第三步:运行结果如图5所示。


深度分析Windows2003自动升级补丁功能(2)


  一劳永逸的简单方法


  如果先识别判断,再根据结果加参数,然后再运行批处理,未免太麻烦了。这里给出完整的批处理命令,可以把判断和安装补丁合二为一:
  FOR /R %%F IN (*.exe) DO @((@findstr _SFX_CAB_EXE_PATH "%%F" >nul && @start /wait %%F /U /Q /Z ) || @start /wait %%F /Q )
  qchain.exe


  把该批处理文件放在补丁目录,不需要把补丁文件集中到同一个目录中,for命令的/R参数会自动搜索所有子目录。注意:对于2002年12月份后的补丁,基本上不需要使用qchain这个命令,新补丁都内置了这个命令。

责任编辑:雪焰

本文引用地址: http://tech.itzero.com/2006/1129/4749.html 请粘贴到你的QQ/MSN上推荐给你的好友

相关文章
适用于 Windows Server 2003、Windows XP 以及 Window 2000 的通用音频结构 (UAA) 高清晰度音频类驱动程序
用Win 2003系统架设邮件服务器
用Windows 2003 架设邮件服务器
卸载补丁去除保护 获取Windows2003密码
一招搞定Vista系统下面软件不兼容问题
数据库安全之手把手教你给DB2打上补丁
2Wire路由设备 Web管理接口存在服务漏洞
如何在 Windows Server 2003 中配置权威时间服务器
如何在 Windows Server 2003 中设置 FTP 服务器
2900 XL/3500XL系列交换机的升级过程
Cisco 交换机升级方法
 

最新文章

更多

· 苹果新系统遭破解 普通P...
· 设计差异引发 Web Servi...
· 关闭Windows XP自动播放...
· 大量开源安全应用程序确...
· 虚拟技术暗藏隐患 威胁...
· 通过建立安全模型保障We...
· 数据库安全应用 使用MyS...
· 无需攻击lsass进程即可解...
· 合理设计安全问题加强出...
· 从数据库管理下手 多手...

热点文章

更多

其它推荐