1、系统补丁自动升级echo offrem South China Agriculture University rem version 0.01rem 使用介绍rem 功能:试图设置自动连接校内Windows Update服务器rem 先进行服务检查,没有安装服务的机器先安装服务,重启动后再修改设置rem Historyrem 2004-03-17 0.01b 全校公测echo INFO For Windows 2000,Windows XP,Windows 2003 only. echo INFO 只在Windows 2000,Windows XP,Windows 2003 上适用echo I
2、NFO For Normal user only (computer that runs every day)set Server=0rem Server=1pauseclsrem 创建临时文件夹set mhnet=%temp%mhnetrmdir /S /Q %mhnet% 2NUL 1NULmkdir %mhnet%rem 系统语言环境判断reg query HKLMSYSTEMCurrentControlSetControlNlsLanguage %mhnet%Language.logfind Default %mhnet%Language.log |find 0804 NULIF NO
3、T ERRORLEVEL 1 ( set Language=Chinese) else ( set Language=English)if %Language%=Chinese ( echo INFO 本程序专为设置校内 Windows Automatic Updates 服务) else ( echo INFO This will setup SCAU Windows Automatic Updates Services)start readme.txtrem 检查配套文件完整性call :AllFilesrem 检查属于NT系列call :CheckSystemrem 检查拥有管理员权限c
4、all :CheckAdminrem 检查Automatic Updates服务是否正常安装call :CheckServicecall :SCAURegImportif %Language%=Chinese ( echo INFO 程序讨论,欢迎到 NC板 echo INFO 程序结束) else ( echo INFO We welcome you to press your opinion on bbs.scau board:NC echo INFO Program Exit)pauseset mhnet=set patchfile=set downloadurl=goto :eofex
5、it:endsrem 主函数结束rem *rem *rem 导入:SCAURegImportrem *rem *:SCAURegImportECHO INFO 备份注册表(Backup Reg) %temp%pushd %temp%set BakFile1=AutoUpdateBak1.regset BakFile2=AutoUpdateBak2.regif exist %BakFile1% ( ECHO INFO 已经安装了本补丁,按任意键删除原有备份 PAUSE delete %BakFile1% /f /q NUL 2NUL delete %BakFile2% /f /q NUL 2NU
6、L)popdpushd %mhnet%reg EXPORT HKLMSoftwareMicrosoftWindowsCurrentVersionWindowsUpdateAuto Update %BakFile1% 1NULreg EXPORT HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdate %BakFile2% 1NULmove %BakFile1% %temp% NULmove %BakFile2% %temp% NULset BakFile1=set BakFile2=popdECHO INFO 正在停止WindowsUpdate服务(
7、Stopping Update service).net stop wuauserv NUL 2NULECHO INFO 正在修改注册表操作(Modifying Registry).ECHO Y |reg DELETE HKLMSoftwareMicrosoftWindowsCurrentVersionWindowsUpdateAuto Update /va /f NULreg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdate /v WUServer /t REG_SZ /d /f NULreg add HKLMSoftwarePoli
8、ciesMicrosoftWindowsWindowsUpdate /v WUStatusServer /t REG_SZ /d /f NULreg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f NULreg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v NoAutoUpdate /t REG_DWORD /d 0 /f NULreg add HKLM
9、SoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v RescheduleWaitTime /t REG_DWORD /d 1 /f NULreg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v ScheduledInstallDay /t REG_DWORD /d 0 /f NULreg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v UseWUServer /t REG_DWORD /d 1 /f NUL
10、if %Server%=1 ( ECHO INFO Automatic Updates Service installed for server reg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v AUOptions /t REG_DWORD /d 4 /f NUL reg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v ScheduledInstallTime /t REG_DWORD /d 11 /f NUL) else ( ECHO INFO A
11、utomatic Updates Service installed for non-server reg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v AUOptions /t REG_DWORD /d 2 /f NUL reg add HKLMSoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v ScheduledInstallTime /t REG_DWORD /d 12 /f NUL)rem 服务自动启动ECHO INFO 设置服务为自动启动(Set service
12、to automatic start)reg add HKLMSYSTEMCurrentControlSetServiceswuauserv /v Start /t REG_DWORD /d 2 /f NULreg add HKLMSYSTEMCurrentControlSetServicesBITS /v Start /t REG_DWORD /d 2 /f NULECHO INFO 正在重新启动WindowsUpdate服务(Starting Update Service).net start bits NUL 2NUL net start wuauserv NUL 2NULgoto :e
13、ofrem *rem *rem 停止/删除服务函数rem *rem *:StopServiceset SrvName=%1net stop %SrvName% NUL NUL2reg query HKLMSYSTEMCurrentControlSetServices%SrvName% NULif not errorlevel 1 ( reg delete HKLMSYSTEMCurrentControlSetServices%SrvName% /f NUL) ELSE ( if %Language%=Chinese ( echo FAIL 系统服务: %SrvName% *没找到* ) els
14、e ( echo FAIL System Service: %SrvName% Not Found )goto :eofrem *rem *rem 判断是否NT系列系统,win9x系统则退出rem *rem *:CheckSystemif NOT %OS%=Windows_NT ( if %Language%=Chinese ( echo INFO 本程序专为中文/英文版本的Win2000,WinXP,Win2003设计 echo FAIL Windows 95, Windows 98, Windows ME的用户不必运行 echo INFO 程序退出。 ) else ( echo INFO
15、Design for Win2k,WinXP,Win2003 with Chinese or English version only. echo FAIL Windows 95,Windows 98, Windows ME will not be troubled by this bug. echo INFO Thank you for checking. Please deliver this to someone who need it. ) pause exit) else ( if %Language%=Chinese ( echo INFO 用户使用基于WindowsNT内核的系统
16、, ) else ( echo INFO You are using a system based on WindowsNT kernel, )goto :eofrem *rem *rem 判断是否NT系列系统,win9x系统则退出rem *rem *:CheckAdminnet user %username% 1 %mhnet%ifadmin.logrem 如果不是系统管理员find *Administrators %mhnet%ifadmin.log NULIF ERRORLEVEL 1 ( if %Language%=Chinese ( echo FAIL 用户不是系统管理员组成员 ,不
17、能执行相应程序 echo INFO 请更换有足够权限的用户重新运行本程序 ) else ( echo FAIL This program require administrator right to continue echo INFO Please switch user and try again ) pause exit goto :eof) else ( if %Language%=Chinese ( echo INFO 用户属于系统管理员组, ) else ( echo INFO You have got the right of administrator, )goto :eofr
18、em *rem *rem 先进行补丁检查,没有安装补丁的机器先安装补丁,重启动后再查杀病毒rem *rem *:CheckServicerem if %Language%=Chinese (rem echo INFO 检查 Automatic Updates rem ) else (rem echo INFO Checking Automatic Updates Servicerem )rem 检查服务的注册表值reg query HKLMSYSTEMCurrentControlSetServices %mhnet%Services.logfind wuauserv %mhnet%Servic
19、es.log NULIF ERRORLEVEL 1 ( rem 您的计算机未安装Automatic updates服务 call :InstallService pause exit rem 中止执行) ELSE (rem if %Language%=Chinese (rem echo INFO 注册表检查显示您的系统已经安装了wuauserv服务。rem ) else (rem echo INFO reg reports that your system has wuauserv service installedrem )goto :eofrem *rem *rem 清空注册表某Run值r
20、em *rem *:CleanRunreg delete HKLMSoftwareMicrosoftWindowsCurrentVersionRun%1 /f NULgoto :eofrem *rem *rem 停止不安全服务rem *rem *:StopUnSafeSrvrem net stop %1 NULreg add HKLMSYSTEMCurrentControlSetServices%1 /v Start /t REG_DWORD /d 0x3 /f NULgoto :eofrem *rem *rem 导入正常注册表的execute文件关联rem *rem *:Regdefault
21、reg import regdefault.reg NULgoto :eofrem *rem *rem 安装wuauserv包rem *rem *:InstallServicerem reg query HKLMSYSTEMCurrentControlSetControlNlsLanguage %mhnet%Language.logrem 中文系统find InstallLanguage %mhnet%Language.log |find 0804 NULIF NOT ERRORLEVEL 1 (CALL :CNService ) rem 英文系统find InstallLanguage %m
22、hnet%Language.log |find 0409 NULIF NOT ERRORLEVEL 1 (CALL :ENService ) rem 其他语言包,以上语言包虽用call调用,但不希望返回if %Language%=Chinese ( echo FAIL 你并未使用中文/英文操作系统, echo INFO 请记下下面显示的InstallLanguage及Default的值,请到微软网站下载相应服务 echo INFO 程序退出) else ( echo FAIL You are not using windows with Chinese/English language ech
23、o INFO We suggest you download the service from microsoft website. echo INFO Please write down the InstallLanguage & Default value for later use. echo INFO program terminated)find InstallLanguage %mhnet%Languate.logstart rem 微软服务安装网页pauseexitgoto :eofrem *rem *rem 中文服务包下载安装rem *rem *:CNServiceset pa
24、tchfile=WUAU22CHS.msiset downloadurl=call :Downloadstart %mhnet%patchfile%if %Language%=Chinese ( echo INFO 安装好服务后重启电脑,再运行本程序) else ( echo INFO Restart your computer when Service installation is done. And run again.)pauseexitgoto :eofrem *rem *rem 英文服务包下载安装rem *rem *:ENServiceset patchfile=WUAU22ENU
25、.msiset downloadurl=call :Downloadstart %mhnet%patchfile%if %Language%=Chinese ( echo INFO 安装好服务后重启电脑,再运行本程序) else ( echo INFO Restart your computer when Service installation is done. And run again.)pauseexitgoto :eofrem *rem *rem 检查部分文件完整性rem *rem *:AllFilesif not exist reg.exe ( echo WARN reg.exe NOT FOUND pause exit) else ( copy reg.exe %mhnet% /y NUL)if not exist wget.exe ( echo WARN wget.exe NOT FOUND pause