硅谷网文 本文主要介绍了如何在windows服务器上创建虚拟RAM内存盘,用Autoit脚本快速设置计算机等级考试模拟系统,提供给学生进行计算机等级考试模拟练习。用Autoit脚本实现了自动格式化内存盘以便清除学生模拟考试数据、创建考试用户文件夹、以及自动设置服务器共享文件权限,让服务器提供更高速、稳定的模拟考试系统环境。
1. 引言
虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术。相对于直接的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。另外RAM有掉电易失性也意味着当关闭电源后RAM中的这部分数据将会丢失。
福建省高校计算机等级模拟考试系统要求在windows服务器上设置按很多个顺序编排的考试用户名(例如ks01、ks02、ks03……)、创建每个考试用户文件夹、设置多个服务器共享文件权限,而且我校计算机实验中心机房在考试前每天大约有1000个学生进行多个模拟题练习操作,需要及时清除学生进行模拟练习后产生的大量垃圾数据文件,重新安装初始化模拟考试系统环境,步骤很复杂繁琐容易出错。
针对以上问题,我们可以通过设置服务器虚拟RAM内存盘来解决。因为虚拟RAM内存盘是把物理内存虚拟分配一个逻辑盘,我们知道物理内存的读写速度高出硬盘速度几十倍,把计算机等级模拟考试系统装入服务器虚拟RAM内存盘,可以大大提高数据访问速度,减少降低服务器硬盘的读写、降低硬盘故障率,另外利用虚拟RAM内存盘掉电易失性,可以重启服务器系统就能迅速清除了学生大量操作留下的无用垃圾文件,通过Autoit脚本语言进行相关服务器实现快速设置初始的模拟考试环境,可以大大提高模拟考试系统的稳定性和可靠性。
2. 创建设置服务器虚拟RAM内存盘
首先我们可以通过使用SuperSpeed.RamDisk.Plus、魔方内存盘或者超级兔子虚拟磁盘加速器等虚拟内存盘软件设置2GB以上的服务器虚拟RAM内存盘。在windows服务器推荐使用SuperSpeed.RamDisk.Plus(有32位版和64位版),安装完SuperSpeed.RamDisk.Plus软件,我们就可以根据需要设置虚拟RAM内存盘,如下图所示:
根据提示按“下一步”按钮,可以设置内存大小以及指定虚拟内存的盘符、分区格式等,虚拟内存盘设置完成后,系统每次开机都会自动生成虚拟内存盘。
如果超级兔子虚拟磁盘加速器软件生成的虚拟内存盘一般是FAT32格式的,由于FAT32格式对共享的文件夹没有安全性设置项,需要转成NTFS格式才能设置考试文件夹的安全性,可以使用Autoit脚本语言格式化内存盘为NTFS格式化(本机房设置服务器虚拟RAM内存盘盘符为R:),这样可以清除模拟考试的旧数据,为下一步初始化设置模拟考试系统环境做准备。
Autoit脚本语言程序主要代码如下:
RunWait(@SystemDir & '\format.com R: /q /fs:ntfs /v:fjksmn /y' ,@SystemDir,@SW_SHOW)
经实际使用ATTO Disk Benchmark测试服务器原有硬盘C:读写取速度最快只是130MB/秒左右,现在读写虚拟RAM内存盘R:速度最快达到4GB//秒左右,如下图所示:
3.安装初始化模拟考试数据并设置映射J盘和K盘的共享文件夹
接下来是在服务器虚拟RAM内存盘上安装初始化模拟考试数据并设置服务器上映射J盘和K盘的共享文件夹,可以把模拟考试初始数据压缩打包后解压缩复制到服务器虚拟RAM内存盘上,自动创建了创建考试用户文件夹,再使用Autoit脚本语言设置共享文件夹权限及安全性权限。
Autoit脚本语言程序主要代码如下:
MsgBox(0,"解压文件","开始解压文件",2)
runwait(@ScriptDir & "\fjksmn省考模拟R.cx")
;设置映射J盘和K盘文件夹的安全性权限
$var1 = "R:\J11mn"
$var3 = "R:\K11mn"
GUICtrlSetData($Input1, "正在设置 " & $var1)
$sShareName="J11mn$"
_Net_Share_ShareDel(@ComputerName, $sShareName)
_Net_Share_ShareAdd(@ComputerName, $sShareName, 0, $var1, "共享J盘" & $var1 , -1)
$sShareName="K11mn"
_Net_Share_ShareDel(@ComputerName, $sShareName)
_Net_Share_ShareAdd(@ComputerName, $sShareName, 0, $var3, "共享k盘" & $var3, -1)
;设置 J 盘安全性, administrators所有权限,fjks只读权限
;$OldPath 要写路径全径,不包括最后的"\"
$OldPath = $var1
$OldFileLX = "*.*"
Dim $aAccess[2][4] = [["fjks", $RE, $GRANT_ACCESS, 0x3],["administrators", $ALL_RIGHT, $GRANT_ACCESS, 0x3]]
dgqx($OldPath, $OldFileLX, $aAccess)
4. 学生机客户端运行使用服务器虚拟RAM内存盘上的计算机等级模拟考试系统:
在学生机客户端上需要使用以下DOS命令映射服务器虚拟RAM内存盘上共享的文件夹J11mn映射为J盘和K11mn映射为K盘:
net use j: \\服务器名称或IP\J11mn /y /persistent:yes
net use k: \\服务器名称或IP\J11mn /y /persistent:yes
之后在学生机客户端上就可以运行J盘和K盘上的计算机模拟考试系统。
把以上Autoit语言脚本编译成.exe可执行文件复制到windows服务器系统的“程序”的“启动”项中,每次开机就会自动格式化清除模拟R盘学生模拟练习的文件,重新自动初始化模拟考试环境设置,当然如果需要时也可以手动运行Autoit语言脚本,这样就大大提高了计算机模拟考试系统的运行速度,增加了系统的可靠性和稳定性。
5. 结束语
经过几年的实践运行,发现虚拟内存盘特别适合于需要大量用户高速访问服务器,并且用户读写的数据不是非常重要的情况,比如设置临时文件夹temp以及学生做计算机模拟考试练习等,如果需要及时保存用户数据,最好在服务器硬件上配有UPS后备电源,并且要有容灾备份软件及时备份虚拟内存盘的数据。另外Autoit语言脚本语言可以根据需求在windows服务器虚拟内存盘上进行NTFS格式化清除旧数据,设置共享文件夹,设置每个考试用户文件夹权限及安全性权限,可以大大提高模拟考试系统的稳定性和可靠性,提高维护服务器的工作效率。本人文章粗浅仅作抛砖引玉之用,请各位专家指正。
作者简介: 陈希,男,出生年月1972年3月,籍贯:福州,学历:大学本科,职称:实验师,研究方向:计算机应用。
|