中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-10 14:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]局域网用自动检测安装安全补丁脚本 查看 1,141 回复 5
楼 主 [原创]局域网用自动检测安装安全补丁脚本 发表于 2007-12-21 23:41 ·  中国 四川 宜宾 电信
新手上路
积分 6
发帖 2
注册 2007-11-10 11:17
18年会员
UID 102229
性别 男
状态 离线
局域网所有客户端只要不定期执行本脚本即可升级补丁,只使用于xp sp2 操作系统的补丁升级,也可以将本脚本添加到客户端的启动菜单自动执行,本脚本已经成功应用于我单位局域网100多台电脑补丁升级,本脚本主要是学习本论坛各位老师的脚本,再根据我单位实际情况编写的。各位可以自己修改相关数据,使其能适用于其他版本的补丁升级。

@echo off
::关闭显示信息

for /f "tokens=1 delims=" %%b in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CSDVersion"') do echo %%b >c:\ver.log
find /i "Service Pack 2" c:\ver.log >nul || echo =========================================================== 你的系统不是WINDOWS XP SP2版本,不能升级,按任意键退出 =========================================================== && pause && exit

IF NOT EXIST U: Net use U: \\155.72.24.254\Updates "82416561" /user:guest
::上面一句中155.72.24.254是存放补丁机器地址,updates是存放补丁目录,82416561是密码(存放补丁机器),guest是存放补丁机器用户名
cls

U:
IF EXIST C:\list.log del c:\list.log /q
IF EXIST C:\reg.log del c:\reg.log /q
::如果c盘有文件list.log和reg.log文件,则将其强行删除

for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" /s ^| findstr /i "kb......$ q......$"') do echo %%~nxa >>c:\reg.log
::查询注册表,将已安装补丁保存为reg.log,供后面比对用。

echo --------------------------------------------------
echo 系统正在检测你已经安装的补丁,请稍候
echo ........
echo --------------------------------------------------
for /f "tokens=1,2* delims=- " %%i in ('dir /b /on *-*.exe') do (findstr /i "%%j" c:\reg.log >nul || echo %%i-%%j-%%k>>c:\list.log)
::提取补丁文件夹中补丁文件名(只提取中间补丁编号,如KB925938)并与从注册表查询已安装补丁的reg.txt文件作循环比较,将系统没有安装的补丁名存放到c:\list.log文件里

IF EXIST C:\list.log for /f "eol=o eol=O " %%j in (c:\list.log) do echo 正在安装补丁%%j && %%j /quiet /norestart
::从list.log文件中取出一个补丁的名字,利用参数(/quiet /norestart)进行安装无人安装

IF EXIST C:\list.log echo 你本次成功安装了以下补丁,详见C盘list.log文件 ..... & type c:\list.log
::显示安装了的补丁的列表,可以加 more参数,防止补丁过多,分屏显示
IF NOT EXIST C:\list.log echo 你的系统已经安装了所有补丁,请一周后再升级补丁 .....
::如果系统已经安装了所有补丁,就不会产生list.log文件,C盘当然也找不到list.log文件,就提示过段时间再升级

::echo off
qchain.exe
IF EXIST U: Net use U: /del /y >nul
echo --------------------------------------------------
echo 为了你电脑的安全,请不定期双击本文件升级补丁
echo 我一般会一周左右更新一次补丁,请按任意键退出
echo ....
echo ==================================================
pause
::暂停让别人看列表

[ Last edited by tyj666 on 2007-12-21 at 11:49 PM ]
2 发表于 2007-12-22 14:27 ·  中国 山东 潍坊 联通
初级用户
积分 62
发帖 29
注册 2007-12-21 14:09
18年会员
UID 106376
性别 男
状态 离线
不知道好不好用 先顶了!
3 发表于 2007-12-22 14:54 ·  中国 广东 佛山 电信
新手上路
积分 4
发帖 2
注册 2007-12-22 11:25
18年会员
UID 106446
性别 男
状态 离线
是不是每一次都要从第一个开始安装呢,这样可很麻烦啊。因为xp2现在过100个补丁呢。
4 发表于 2007-12-22 17:54 ·  中国 四川 宜宾 电信
新手上路
积分 6
发帖 2
注册 2007-11-10 11:17
18年会员
UID 102229
性别 男
状态 离线
能自动检测跳过已经安装的补丁
5 发表于 2007-12-24 00:03 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
我们局域网其它电脑不能上网,嘿嘿,懒得打补丁了.
可以上网的电脑又会自动下载安装补丁,所以..

先收下备用.
QQ:366840202
http://chenall.net
6 发表于 2008-11-22 18:03 ·  中国 浙江 嘉兴 海宁市 电信
中级用户
★★
积分 360
发帖 216
注册 2007-05-29 17:41
19年会员
UID 89677
性别 男
状态 离线
Qchain.exe

这个打补丁的程序,谁有呀?

能传个吗?
论坛跳转: