WINDOWS补丁的多线程下载方法和安装技巧
转自:http://www.e-works.net.cn/Articles/661/Article37379.htm
一、怎么下载系统补丁:
方法1
如果你是局域网用户,且局域网中的某台电脑已经更新到最新状态,那么可以在这台电脑的“%systemroot%\Windows” 下找到“Windows Update.log” 文件(“%systemroot%”为系统安装的盘符,一般为“C:”),用记事本打开该文件 ,可以看到里面包含了所有更新过的程序记录,其中格式形如“http://download.windowsupdate.com/msdownload/update.../.exe”的链接就是补丁程序的下载地址。新建一个文本文件,命名为“Update.lst”,再将日志中记录的下载地址按照每行一个地址的格式复制到该文本文件中,启动FlashGet下载工具,点击“文件→导入列表”命令,选择“Update.lst”即可。当任务全部下载完成后,按照日志中记录的顺序(通常是从上往下)逐个双击并安装补丁即可。
方法2
如果是单机用户,先点击“开始→Windows Update”命令,然后在打开的页面左边列表中点击“扫描以寻找更新”,再点击“复查并安装更新”查看需要更新那些补丁。接下来再点击“立即安装”按钮,当出现开始下载补丁的对话框后,选择“取消”,接下来就可以在资源管理器中找到“%systemroot%\Windows”目录下的“Windows Update.log”文件了!再按照以上所说的方法将补丁程序下载并安装即可。
其实,当系统自动更新完毕后,那些补丁程序已经下载到本地磁盘的临时文件夹中了,具体的位置在“Windows update.log”日志文件中也有记录,如果没有删除这些文件,就可以根据所记录的临时文件夹找到这些补丁程序。
方法3(官方方法)
使用下载篮子保存和再次安装已经下载的补丁
很多人用调制解调器上网,每次重装系统后Update都要花不少的时间和精力,于是就有人在考虑怎样把从Windows Update下载的文件保存起来以便以后新装了系统可以直接运行。不过遗憾的是,通过Windows Update下载的所有补丁程序在安装成功后都会被自动删除。好在微软已经为我们提供了一个很好的方法。
运行浏览器,并打开http://windowsupdate.microsoft.com ,在左侧的Windows Update面板中点击“个性化Windows Update”,选中右侧的“在相关主题下显示到Windows Update目录的链接”,然后保存设置。
现在再看看左侧的面板,你可以看见,在相关主题列表下增加了一个“Windows Update目录”的链接,点击进入。
之后点击右侧的“查找Microsoft Windows操作系统的更新”并选择你要查找的操作系统和语种。这里包括了所有主流的微软操作系统以及各种不同的语种,选择好之后点击“搜索”,所有可下载的更新就全部找到了。这些更新不用你亲自一个一个地下载,只要分别点击,加入到下载篮子,就可以一次全部下载回来。
二、下载了怎么安装补丁?
如果执行一次补丁都重新启动一次太麻烦,如果全部执行后再重新启动,毫无疑问要导致旧文件覆盖新文件的问题,打不到修补目的,看看官方的办法:
下载回来的补丁全部是可执行文件(假设他们分别为fix1.exe,fix2.exe ……),按照常规的方法,你可能就直接一个一个地开始安装,其实这样是很麻烦的,不仅要依次运行多个安装程序,并且每个补丁安装完成后都要求重新启动。这样的安装简直就是一场恶梦。你可能会想,只要分别安装每个补丁,最后统一重启动一下就行了,不过这样是很不可取的。
安装Hotfix时,如果要替换的文件被系统占用,那么新文件将被另外存放并被记录在注册表的未决文件重命名队列(Pending File Rename queue)键值中,等下一次重新启动计算机后再执行替换操作。根据这个特点,如果一次安装多个Hotfix补丁而不在每个安装后重新启动计算机,就会存在一定的问题。以下例子就可以说明:
假设我们要安装Hotfix 1 和Hotfix 2 ,每次安装后不重新启动计算机。
两个Hotfix中都包含文件X,Hotfix 1的文件X版本为3.0,Hotfix 2的文件X版本为2.0,计算机中的文件X当前版本为1.0。
首先安装Hotfix 1,由于计算机中的文件X被占用,Hotfix 1的文件X被记录在注册表的未决文件重命名队列键值中。
然后安装Hotfix 2,结果是Hotfix 2的文件X被记录在注册表的未决文件重命名队列键值中。
最后重新启动计算机,因为Hotfix 2最后安装,它的文件X版本2最终替换替换了计算机中的文件X版本1。显然,这不是我们所期望的结果。
好在微软考虑的是很周到的,他为我们提供了一个免费的小工具:Qchain.exe。这个工具可以在这里下载到。利用它,我们可以一次安装多个补丁程序,并且也不会在每个安装完成之后都要求重启动。
你可以直接按照常规方法先运行每个Hotfix程序,不过为了避免安装后的重启动,可以在命令行下运行“fix1.exe -z”,其中“-z”这个参数可以在安装结束后避免重启动计算机。除了“-z”,你还可以试试“-q”,用这个参数可以不出现详细的安装过程,做到全自动。在所有的Hotfix补丁都安装完成后,再次从命令行模式下执行QChain.exe,它将检查注册表的未决文件重命名队列键值,对Hotfix 1和Hotfix 2等的安装文件进行合适的链接、取舍等操作,最终保证被修改文件是最新版本。
如果你嫌这样的操作太麻烦,还可以试试用脚本,使得全部的安装更加自动化。脚本的使用方法是这样的,把下列文字:
@echo off
setlocal
set PATHTOFIXES=c:\update
%PATHTOFIXES%\fix1.exe -z -q
%PATHTOFIXES%\fix2.exe -z -q
%PATHTOFIXES%\fix3.exe -z -q
%PATHTOFIXES%\qchain.exe
输入到记事本中(c:\update为本例中保存所有Hotfix文件和Qchain.exe的位置,你需要按照你自己的情况更改),然后保存成一个bat文件,双击后就可以自动执行,而你只需要在全部的补丁都安装完成后重启动电脑就可以了。而对于每个补丁所支持的安装参数,你可以通过运行fix1.exe /?获得
用qchain.exe虽然很方便,不过可能会在有些情况下发生一些问题,就是, 对于Windows NT和Windows 2000 SP3以前的版本,一旦补丁程序中包含 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs 这个键值所示的二进制文件时就会发生错误,因为这里的文件都是在启动时被装载到内存的,所以遇到这种情况,你就只能老老实实地运行安装程序,然后重启动了。 但是对于Windows 2000 SP3及以上版本,Windows XP还有Windows Server 2003来说,这个问题已经解决了。具体的信息你可以看这里:KB296861
再说说补丁的事
使用最普及的操作系统无疑就是微软的Windows,Windows 98、Windows 2000、Windows XP,可以毫不夸张地说,只要有电脑的地方,就能见到Windows的身影。虽然Windows操作系统被广泛采用,不过这并不表示它的稳定性和可靠性最好。相反,早期的Windows是相当不可靠的,大家广泛采用它只是因为它的易用性和兼容性。不过现在好多了,随着Windows 2000和Windows XP的广泛应用,Windows产品的稳定性和可靠性已经不再是那么突出的问题。相反,现在人们关注最多的,则是Windows的安全性!
既然是全世界应用最广泛的软件产品,研究它的人自然不会少。进而Windows系统上被发现的漏洞和缺陷似乎也特别的多,并且还有不少的人以制造Windows上传播的病毒和木马为乐。我们经常能够看到提醒大家Windows产品新发现某个漏洞之类的文章。所以在发现漏洞后的第一时间给我们的系统打补丁已经成为了Windows用户的一个必修课。
这里首先说说Windows操作系统的补丁,我们主要以Windows 2000/XP的补丁加以了解。一般需要安装的补丁有两种,Hotfix和Service Pack,Hotfix是针对某一具体问题而发布的专门解决这个问题的小程序(也可以叫做修复程序)。微软一般会把在自己的软件产品中发现的重大问题以安全公告(Security bulletin)的形式通知给大家,这些公告都有一个唯一的编号,即MS**-***。例如MS02-063,表示微软公司在2002年发布的第63个安全公告。这些公告所涉及的问题还有另外一个编号:Q******。MS02-063安全公告的编号就是Q329834,这个号码表明了该问题在微软知识库(Knowledge Base)中的编号,只要记住这个编号,随时都可以查找到相应的文章和解决方案。因此,每个安全公告所发布的补丁也就有了相应的编号,例如Q329834针对Windows XP系统的补丁名称就是Q329834_WXP_SP2_x86_ENU.exe ,这表示这个补丁解决的问题在知识库文章Q329834中讨论过,适用于Windows XP,即将被集成到Windows XP SP2中,并且是英文版。
上面我们说到了SP2,SP的全称是Service Pack,即补丁包。由于微软频繁地发布各种Hotfix补丁,对于一般的系统管理员,要察看自己的电脑是否安装了某个Hotfix补丁就成了一件很麻烦的事情。并且,依次安装各种Hotfix补丁在操作上也非常烦琐和辛苦。微软为了解决这个问题就开始发布Service Pack补丁。这种补丁一般在操作系统正式上市一段时间后发布,包含了自发布之日全部的Hotfix补丁。只要安装了Service Pack,在这个Service Pack发布之前的所有Hotfix补丁就都不用再安装了。只有Windows NT/2000/XP才有Service Pack,Windows NT的Service Pack最新版本是SP6a,适用于Windows NT的各种版本;Windows 2000的是SP3,适用于Windows 2000 Professional/Server/Advanced Server;Windows XP的是SP1,适用于Windows XP Professional/Home Edition。Service Pack补丁是累加的,也就是说,你对于一个新安装的操作系统,你不必依次安装SP1,SP2,SP3,只要装了最新的Service Pack就可以了。