批处理在机房管理中的应用
2009-08-12陶军毅
陶军毅
由于我长期从事初中信息技术教学和机房管理工作,深知机房管理对信息技术教学的重要性。在学校机房的日常管理和维护中,我经常碰到如下问题。
(1)病毒的问题,如ARP病毒、机器狗病毒等。
(2)系统安全的问题,如修补系统漏洞、关闭危险端口、关闭不安全的服务等。
(3)网络维护的问题,如更换DNS、网关等。
(4)学生作业上交和管理的问题,即如何提交作业,并对他们进行管理。
(5)其他问题,如自动返回学生端信息,以便了解情况。
那么,如何高效地解决这些问题呢?我认为使用批处理可以较好地解决这些问题。批处理是一种脚本语言,具有使用方便、灵活,功能强大,自动化程度高的特点,它由DOS或者Windows系统内嵌的命令解释器(通常是CMD.EXE)解释运行,在语言处理上类同QB,是解释性脚本语言,本文主要介绍机房管理中使用批处理的一些经验。
一、在服务器与客户机之间建立批处理通道
首先在服务端创建一个共享文件夹,共享名为bat$,权限为只读。接下来,在文件夹内创建一个名为start.bat的空文件,以后对学生端进行操作的批处理代码都写在这个文件里,与代码相关的文件也放在这个共享文件夹内。在学生端用VBS脚本调用服务器端的start.bat及相关文件,VBS脚本文件取名为start.vbs并放在学生端的启动组中,或者放在学生端的c:windowssystem32中,接着添加到注册表的启动项中,最后把学生端系统保护起来。start.vbs脚本如下:
dim wsh
set wsh = wscript.createobject("wscript.shell")
wscript.sleep(1000)
ireturn=wsh.run("cmd /c \192.168.3.173at$start.bat",0,true)
set wsh=nothing
wscript.quit
添加到注册表的启动项中的批处理脚本如下:
reg add hklmsoftwaremicrosoftwindows currentversion un /v bat /t reg_expand_sz /d"c:windowssystem32start.vbs" /f
注:192.168.3.173为服务器端IP地址,学生端系统是Windows XP。
二、批处理在机房日常维护中的应用
通过批处理通道,在服务端的start.bat文件中添加下列代码,学生端启动后自动实现下列目标。
1.病毒防御
(1)学生端自动防ARP病毒。
此病毒可致局域网瘫痪,最好的解决办法是“双向绑定”。即路由中绑定学生机的ip-mac,学生机中绑定路由的ip-mac及学生机自身的ip-mac绑定。在服务器端的start.bat文件中添加如下代码。
:: 绑定路由
arp -s 192.168.3.100-1d-0f-3d-71-5c
:: 绑定本机
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^|findstr /i /c:"physical address"') do (set macself=%%i)
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^|findstr /i /c:"ip address"') do (set ip=%%i)
arp -s %ip: =%%macself: =%
(2)学生端自动抵御机器狗病毒。
此病毒破坏计算机的还原系统,增加了信息技术课的不确定性。解决的方法是,从360网站下载网吧还原保护器远调版,并解压到bat$dog文件夹,然后设置好返回信息的存放路径,并在服务器端的start.bat文件中添加如下代码:
start “”“\192.168.3.173at$dogGuardField.exe”
2.提高系统的安全性
(1)学生端自动关闭高危的端口。
下载或从安装盘提取微软小工具ipseccmd.exe,放在bat$文件夹里,然后在服务器端的start.bat文件中添加如下代码:
@ echo off
xcopy /y \192.168.3.173at$ipseccmd.exe c:windowssystem32
ipseccmd -w reg -p "blockp" -r "tcp135" -f *+0:135:tcp -n BLOCK-x
ipseccmd -w reg -p "blockp" -r "udp135" -f *+0:135:udp -n BLOCK-x
不同的病毒和木马使用不同的协议和端口入侵,比如MSBlast冲击波蠕虫使用TCP:4899,关闭该端口的方法如下: ipseccmd -w reg -p " blockp " r “tcp4899" -f *+0:4899:tcp -n BLOCK -x 。可以根据实际需要随时关闭高危端口。
(2)学生端自动打系统补丁。
为了增强Windows系统的安全性,须经常打补丁。下载所需补丁后,放在服务端的bat$12文件夹里,并在服务器端的start.bat文件中添加如下代码:
if exist c:12 (rd c:12 /s/q) else (
xcopy /e/y/i 192.168.3.173at$12 c:12
for /r c:12 %%i in (*.exe) do %%i/passive/norestart
shutdown-r)
以上代码能实现补丁的自动安装、安装后自动重启等功能,从而提高了工作效率。
(3)学生端自动删除默认的共享以增加安全性。
::删除每个分区下的默认共享.
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do(
if exist %%a: ( net share %%a$ /delete) )
::删除 admin$ 默认共享
net share admin$ /delete
::通过注册表禁用Admin$共享,以防重启后再次加载
reg add HKLMSYSTEMCurrentControlSet Serviceslanmanserverparameters /v AutoShareWks /t reg_dword/d 0x00000000 /f
reg add HKLMSYSTEMCurrentControlSet Serviceslanmanserverparameters /v AutoShareserver /t reg_dword/d 0x00000000 /f
三、提高网络维护的效率
学生端自动修改IP地址、子网掩码、网关、DNS、计算机名。
(1)把下列代码保存成批处理文件。机房正常工作时,在服务器端运行此文件,可以收集学生机IP地址和MAC地址。把生成的ip-mac.txt文件存放到服务端的bat$文件夹中。
@echo off &echo正在收集中,请等待……
set "aa=192.168.3."
cd.>c:ip-mac.txt
for /l %%i in (1,1,254) do (ping %aa%%%i -n 1 -w 10)>nul2>nul
(for /f "tokens=1,2 skip=3%%i in ('arp -a') do (if “%%j” neq “00-00-00-00-00-00” echo%%i %%j))>>c: ip-mac.txt
(2)根据学生机的MAC地址,修改学生机的计算机名、IP地址、网关、子网掩码和DNS,在服务器端的start.bat文件中添加如下代码:
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "physical address"') do set "macself=%%i"
xcopy /y \192.168.3.173at$ip-mac.txt c:
for /f "tokens=1,2" %%i in (c:ip-mac.txt) do (
set ip=%%i
set name=stu!ip:~10!
if /i "%macself: =%" equ "%%j" (
::改学生机的计算机名
reg add "HKLMSystemCurrentControlSetControl ComputerNameActiveComputerName" /v ComputerName /t reg_sz /d !name! /f
reg add "HKLMSystemCurrentControlSet ServicesTcpipParameters" /v "NV Hostname" /t reg_sz /d !name! /f
reg add "HKLMSystemCurrentControlSet ServicesTcpipParameters" /v Hostname /t reg_sz /d !name! /f
::改IP子网掩码 网关
netsh interface ip set address name="本地连接" source=static addr=!ip! mask=255.255.255.0 gateway="192.168.3.1" gwmetric=0
::改DNS
netsh interface ip set dns name="本地连接" source=static addr="221.12.1.228" register=PRIMARY
netsh interface ip add dns name="本地连接" addr="202.96.104.17"
netsh interface ip set wins name="本地连接" source=static addr=none ))
del c:ip-mac.txt /f/q
四、学生端作业的提交和管理
1.用批处理提交作业
很多教师用FTP来接收学生的作业,其实批处理也可实现。在服务端建立一个权限为读取和更改的文件夹,名称为“学生作业$”。在服务器端start.bat添加如下代码:
xcopy/y“\192.168.3.173at$作业提交.bat”d:
其中“作业提交.bat”文件存放在“bat$”中,其代码如下:
@echo off
set /p name1=请输入你的名字:
set name1=%name1%%date:~0,10%
set name2=%name1:-=%
set name2=d:\%name1%
md %name2%
set /p="请把要上交的文件或文件夹存放到% name2%,并按任意键继续。"
xcopy /e/y/i/s %name2%\192.168.3.173学生作业$\%name1% 1>nul && echo 提交成功
pause>nul
2.查找和删除超过指定大小的文件
有些学生可能会上传游戏文件,而这些文件又很大,这时,把下列代码保存成“删除.bat”,并在服务器端直接运行,即可在服务器端查找和删除超过指定大小的文件。
@echo off
setlocal enabledelayedexpansion
for /r F:学生作业\%%i in (*) do (
set /a aa=%%~zi
set /a aa=!aa: =!
echo %%~fi
if!aa! gtr 20000000(
set /p c= %%~fi大于20m要删除吗?删除请输入y:
if !c! == y del /q/f "%%~fi" && echo %%~fi success
))
pause>nul
批处理除了能实现上述功能外,还能解决其他问题,而这些解决方式需要机房管理者不断地探索和挖掘。
(作者单位:浙江慈溪市杭州湾中学)