前很多学校的网络教室采用PXE无盘工作站技术,尽管PXE工作站的管理有口皆碑,但由于学生的好奇甚至故意的“恶作剧”,差不多每一节课不等上完,系统就被弄得乱七八糟、面目全非了……
尽管这些都可以很容易地被禁止,但是限制越多,对学生来说越是索然无味,满足不了学生的好奇心和求知欲;如果在服务器上安装“还原精灵”的话,又使本已不堪重负的服务器变得更慢,并且只有经过漫长的服务器重启才能还原……于是,清空无盘工作站用户目录便成了还原工作站设置的最简单、最快捷、最有效的方法了!
然而,倘若靠手工逐个地清空无盘工作站用户目录,很是麻烦。其实这样的“苦差”完全可以请DOS完成——编个简单的批处理文件,轻松一按,几十台工作站的系统还原便瞬间完成!
为使叙述直观具体,就以我校的网络教室为实例来阐述。
■ 网络教室环境
我校的网络教室基本情况如下:
1.服务器操作系统为Windows 2000,安装在服务器C盘。
2.30台无盘工作站操作系统为Windows 98,上传在服务器D盘PXE目录里。
3.30台无盘工作站用户名依次为:A1~A5……F1~F5。用户目录与用户名相同,依次为服务器上“D:\PXE\”文件夹里的以下目录:A1~A5……F1~F5。
4.每个用户目录须有四个授权用户,即除了Administrator、System、Lnguest这三个全权用户外,另外必须还有一个全权用户——自身(如A1用户拥有对A1目录的全部权限),这样,就在实现对自己的目录完全控制的情况有效地避免了打开其他用户目录进行 “非法活动”了!
■ 编写批处理文件
现在,情况清楚了,要完成的任务就是:清空这30个用户目录(以达到还原无盘工作站之目的)。当然不是用手工删除,而是用一个简单的DOS批处理文件Cacls.bat(当然也可用其他名称)来完成。内容为:
D:
CD \PXE
FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO RD/S/Q %%X%%Y
FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO MD %%X%%Y
FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO CACLS D:\PXE\%%X%%Y /E /G %%X%%Y:F /R PXEclass
简单说明:
1. 该批处理文件中的DOS命令都是针对Windows 2000操作系统自带的DOS命令,而不是Windows 98里的DOS命令。
2.因为DOS中没有清空目录的命令,所以,只有分三步走了:
第一步,删除A1~F5这30个目录:FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO RD/S/Q %%X%%YFOR…IN…DO…是一个循环结构,注意变量名称是区分大小写的。
在这个二重循环嵌套里,第一次循环%%X值取A,执行FOR %Y IN (1 2 3 4 5) DO RD/S/Q A%Y 命令,删除A1、A2、A3、A4、A5;第二次循环%%X值取B,执行FOR %Y IN (1 2 3 4 5) DO RD/S/Q B%Y 命令,删除B1~B5……依此类推,共进行6次循环,执行30次删除目录操作。RD/S删除非空目录,/Q表示为安静模式(Quiet),即不询问。
第二步,重建这30个目录:FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO MD %%X%%Y重建后的A1~F5这30个文件夹图标,都有一个手形共享标志——竟然奇迹般地“记住”了先前的这30个文件夹的共享属性!
第三步,分别为这30个目录设置不同的权限:FOR %%X IN (A B C D E F) DO FOR %%Y IN (1 2 3 4 5) DO CACLS D:\PXE\%%X%%Y /E /G %%X%%Y:F /R PXEclass CACLS用来显示或者修改文件的访问控制表(ACL)即访问权限。这行命令的作用是为30个目录(A1~F5)添加一个自身用户并赋予全部权限(/E /G %%X%%Y:F);同时撤消一个PXEclass组权限(/R PXEclass)。PXEclass组是从其父目录(D:\PXE)继承而来,A1~F5都隶属于该组,之所以要撤消该组权限,目的是为了限制学生相互访问恶意删除他人文件。至于另三个全权用户(Administrator、System、Lnguest),MD在重建30个目录时已自动从D:\PXE继承了!
批处理文件的高明之处在于:删除和重建这30个目录不需写长长的30行RD命令,而只要一个FOR循环嵌套就行了。由于在删除时没有取消共享,这30个目录重建后会保持原有的共享设置。