@echo off
cls
echo.
echo ********************************
echo * *
echo * 功能:在不能上互联网的内网中安装M$补丁的脚本 *
echo * 限制:该版本只能用于 WINDOWS XP SP2 简体中文版,其他版 *
echo * 本正在制作中。 *
echo * 制作人:余振中 *
echo * e-mail:yuzhenzhong@163.net *
echo * 补丁时间:2005年3月18日 *
echo * *
echo ********************************
echo.
rem 设置服务器IP及共享路径
set HotPatch=\\c02\hotfix\xp\sp2
rem 创建临时文件夹
set mhnet=%temp%\mhnet
rem @rmdir /S /Q %mhnet% 2>NUL 1>NUL
mkdir %mhnet%
rem 主程序开始
:Start
rem 检查配套文件完整性
rem call :AllFiles
rem 检查是否属于WINDOWS XP SP2系统
call :CheckSystem
rem 检查是否拥有管理员权限
call :CheckAdmin
echo.
pause
rem 开始升级系统
call :HotfixUp
rem 删除临时目录,清空变量
rmdir /S /Q %mhnet% 2>NUL 1>NUL
set mhnet=
set HotPatch=
goto :eof
exit
:ends
rem 主程序结束
rem *************************
rem *************************
rem 判断系统版本是否为WINDOWS XP SP2,否则退出
rem *************************
rem *************************
:CheckSystem
rem 先判断系统版本是否为WINDOWS NT系列,若为WIN98系列则退出
IF %OS%==Windows_NT (
rem 再次判断系统版本是否为SP2
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CSDVersion" >%mhnet%\banben.log
find "Service Pack 2" %mhnet%\banben.log >NUL
IF ERRORLEVEL 1 (
cls
echo.
echo 注意:本程序只能用在 Windows XP SP2 版本的系统上。
echo 请先升级到 Windows XP SP2,再运行本程序!!!
pause
exit
) else (
echo 用户使用 Windows XP SP2 的系统,
)
) else (
rem 系统为win98系列.
cls
echo.
echo 运行错误!
echo.
echo 注意:本程序不能用在 %os% 系列版本的系统上。
pause
exit
)
goto :eof
rem *************************
rem *************************
rem 判断是否具有管理员权限,否则退出
rem *************************
rem *************************
:CheckAdmin
net user %username% > %mhnet%\ifadmin.log
rem 如果不是系统管理员
find "*Administrators " %mhnet%\ifadmin.log >NUL
IF ERRORLEVEL 1 (
cls
echo 运行出错!
echo.
echo 注意:用户不是系统管理员组成员 ,不能执行本程序!!!
echo 请更换有足够权限的用户重新运行本程序。
pause
exit
goto :eof
) else (
echo 用户属于系统管理员组,可以执行本程序。
)
goto :eof
rem *************************
rem *************************
rem 将服务器上的共享补丁包目录映射为本地盘S,并逐一运行补丁包
rem *************************
rem *************************
:HotfixUp
net use S: %HotPatch%
S:
cls
echo 注意!不要关闭本程序,系统升级完毕后会自动退出。
echo 正在升级系统,请等待......
IF not EXIST %SystemRoot%\KB834707.log KB834707.exe /passive /norestart
IF not EXIST %SystemRoot%\KB867282.log KB867282.exe /passive /norestart
IF not EXIST %SystemRoot%\KB873333.log KB873333.exe /passive /norestart
IF not EXIST %SystemRoot%\KB873339.log KB873339.exe /passive /norestart
IF not EXIST %SystemRoot%\KB885250.log KB885250.exe /passive /norestart
IF not EXIST %SystemRoot%\KB885835.log KB885835.exe /passive /norestart
IF not EXIST %SystemRoot%\KB886185.log KB886185.exe /passive /norestart
IF not EXIST %SystemRoot%\KB887742.log KB887742.exe /passive /norestart
IF not EXIST %SystemRoot%\KB888113.log KB888113.exe /passive /norestart
IF not EXIST %SystemRoot%\KB890047.log KB890047.exe /passive /norestart
IF not EXIST %SystemRoot%\KB890175.log KB890175.exe /passive /norestart
IF not EXIST %SystemRoot%\KB891781.log KB891781.exe /passive /norestart
IF not EXIST %SystemRoot%\KB887472.log KB887472.exe /q
rem 修复一次运行多个补丁包而不重启系统可能造成的未决文件版本问题
Qchain.exe
rem 删除本地共享映射驱动器
C:
net use S: /Delete /Y
goto :eof
rem ----- this is the end of this batch file -------作者: Climbing 时间: 2005-3-29 00:00 脚本写的是很好,但感觉没有必要,因为用微软的Software Update Service(即SUS)可以实现关键补丁的自动更新,而且是全自动(因为使用的就是微软的自动更新功能),当然SUS只能用于Windows 2000/XP/2003,不过现在还有多少人用Win9x呢?就算是用,Win9x基本上也不再需要打什么补丁了。建议你看一下这篇文章:http://www.cctips.com/show.aspx?id=78&cid=6作者: yzz163 时间: 2005-3-29 00:00 微软的Software Update Service(即SUS)可以实现关键补丁的自动更新,而且是全自动(因为使用的就是微软的自动更新功能),===========可是微软的Software Update Service要钱呀。还要专门搞一台服务器。我想还不如用FreeDBS+Samba 全免费的无版权。作者: Climbing 时间: 2005-3-30 00:00 SUS是免费的,我用了很长时间了。相对于你下载补丁和编写升级脚本的维护时间来说,一台服务器不算什么。作者: yzz163 时间: 2005-3-31 00:00 SUS是免费的,我用了很长时间了。相对于你下载补丁和编写升级脚本的维护时间来说,一台服务器不算什么。====================1、SUS必须用WIN2000/2003 server。你认为维护一台WIN的服务器很简单吗?(每天要重启、每个月有好多补丁要打,就是这样还是不敢放松)我不信,M$的东西太烂,只适合普通用户做桌面。我不喜欢用它来做服务器。服务器还是FreeBSD\Linux\或其他商业的UNIX安全稳定可靠。2、如果你的网络只有20-30台机器,你认为这样规模的单位愿意买一台服务器来搞SUS吗?(写这个补丁脚本可以做成光盘发给他们在任何一台机器上win98或WINXP上共享即可)3、我想用FreeBSD+Samba做服务器,在上面完成给M$客户打补丁、病毒库升级。用FreeBSD做系统,所用软件不存在版权问题可免费使用。买一套WIN2000/2003 server要多少钱,只有用盗版。作者: Climbing 时间: 2005-3-31 00:00 你自己如果愿意花这么多时间和精力维护补丁更新,我当然没有意见。虽然win2000/2003不是免费的,但sus确实是免费的。FreeBSD虽然是免费的,但照样需要占用一台并不免费的机器。其实成本都差不多。微软的系统也不象网上所宣传的那样那么差,毕竟它还是市场的主要占有者,我不想讨论Windows和Unix系统的优劣,因为讨论这个没有意义。现在的工具都在这里,你自己感觉怎么方便就怎么来。反正我觉得用SUS挺简单的,安装上后基本上就不再需要什么维护工具了,至多每个月打几个勾就完事。我觉得它极大的节省了我的时间和精力。作者: yzz163 时间: 2005-3-31 00:00 微软的系统也不象网上所宣传的那样那么差,毕竟它还是市场的主要占有者,我不想讨论Windows和Unix系统的优劣,因为讨论这个没有意义。-----------------------我在很多单位(20-50台以下),他们的情况是:1、基本上用盗版M$的WIN98和XP,即便有些品牌机预装了正版但在系统无法启动后又被搞维修的(社会上请的)装上了盗版。2、100%的机器没有打补丁,病毒库是两三年前的!!!3、100%的机器有各种病毒(木马),有的机器有十机种,几百上千的文件被感染。系统奇慢。4、在单位上没有专人维护,或不愿干这种“吃力不讨好的事”。因此我想写这个补丁脚本可以做成光盘发给他们在任何一台机器上win98或WINXP上共享即可解决。作者: Climbing 时间: 2005-3-31 00:00 这只是这些单位搞维护的人太差了,你不觉得中国使用计算机的人普遍太缺乏维护常识了吗?这就好象一个人开车却不知道如何保养车一样,这不是车的问题,而是人的问题。盗版不盗版的倒也无所谓,在中国,目前盗版是一个省钱的好途径。而且,就算是FreeBSD或者Linux甚至是AIX,如果缺乏维护和升级,照样也存在很多安全问题,它们只是因为市场占有率太低,所以才显得安全问题不太突出,如此而已。很久以前,网络上就有Win98和其它Windows系统的补丁合集,我自己也做过,但维护一个补丁集实在是太困难太费精力了,对此我深有体会。作者: yzz163 时间: 2005-4-1 00:00 这只是这些单位搞维护的人太差了,你不觉得中国使用计算机的人普遍太缺乏维护常识了吗?
------------------------------
做Win98和其它Windows系统的补丁合集就是给广大的“不太懂计算机维护”的用户用。