批处理自动安装Windows补丁
截至2007年9月,对于Win2000+SP4+IE6,需安装85个安全补丁;对于WinXP+SP2,需安装74个安全补丁。如果以手工GUI方式为Windows OS打补丁,操作时间太长,而且容易遗漏。所以用批处理是一个更好的选择。
关键词: Windows,patch,dos,2000,XP,bat,安全,补丁, 漏洞, 视窗,批处理,自动
Bat文件的内容:
@set /p input="Do you want to install patches for windows 2000? Pls make sure that win2000's patches are in current directory (y|n)"
@if /i "%input%"=="y" (goto :PATCH) else (goto :END)
@REM ------------------------------------------------------------
@REM Function: Installing patches for windows .
@REM Written by Lujj. 2007-09-29
@REM ------------------------------------------------------------
@REM other option 1: Windows2000*CHS.exe and IE6*CHS.exe WindowsMedia*CHS.exe
@REM other option 2: WindowsXP*CHS.exe and WindowsMedia*CHS.exe
:PATCH
@set /a ccount=0
@set pw2klog=c:/pw2ktxt.log
@echo ----------------------------------------------------- >>%pw2klog%
@echo %date% %time% && @echo %date% %time% >>%pw2klog%
@echo ::Install the folllowing patches: && @echo ::Install the folllowing patches: >>%pw2klog%
@FOR %%F IN (*KB*CHS.exe) DO @( ((@set /a ccount+=1) && (@echo ** %%F) && (@echo ** %%F >>%pw2klog%)) && ((@findstr _SFX_CAB_EXE_PATH "%%F" >nul && @start /wait %%F /U /q /Z) || (@start /wait %%F) && (@echo ::--GUI--) && (@echo ::--GUI-- >>%pw2klog%) ) )
@echo :: && @echo :: >>%pw2klog%
@echo ::Count: %ccount% && @echo ::Count: %ccount% >>%pw2klog%
@echo %date% %time% && @echo %date% %time% >>%pw2klog%
@echo :: && @echo :: >>%pw2klog%
@echo Pls restart system ASAP.
@pause
:END
使用方法:建一个目录,比如e:/apw;把上面的程序保存到文件,比如e:/apw/apw.bat;把windows的补丁拷到这个目录下。执行bat,程序将按顺序逐个安装补丁,最后提示重启机器。程序日志保留在c:/pw2ktxt.log,记录了起止时间和补丁文件名列表。
测试情况:已在windows2000+SP4+IE6及WindowsXP+SP2中文版上通过测试。只用10分钟,就在虚拟机上安装完85个win2000补丁。在一台2002年的机器上安装XP安全补丁,用时60分钟。
本程序不检测windows是否已打过补丁,请自行检查。如果重复安装补丁,没有发现错误异常,会多用一些时间。如果只想安装近期的补丁,则只保留近期的补丁文件在本目录,移走其它补丁文件。