计算机机房管理的自动化改造
摘要:高校公共机房的设备越来越多。一般情况下,在计算机软硬件系统更新后计算机IP地址与计算机名等信息不匹配,需要手工配置。为解决这些问题,本文提供了计算机机房管理的自动化改造软件,利用Visual Basic开发该系统,显示学生机的计算机名、IP地址、MAC地址等信息,简化了人工手动配置的工作。且相对于联想的同传系统,该系统还是轻量化的。
关键词:高校公共机房;自动化改造软件;Visual Basic;轻量化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)28-0236-03
Automatic Management of Computer Room
CHEN Jia-jia, WANG Chao
(College of Medical Engineering and Technology, Xinjiang Medical University, Urumqi 830011, China)
Abstract: There are more and more equipment in public computer rooms in colleges and universities. Under normal circumstances, after the computer software and hardware system is updated, the computer IP address does not match the computer name and other information, and needs to be manually configured. In order to solve these problems, this paper provides the automation transformation software of computer room management. The system is developed by Visual Basic, which displays the computer name, IP address, MAC address and other information of the student machine, which simplifies the manual manual configuration. And compared to Lenovo"s simultaneous transmission system, the system is still lightweight.
Key words: University public computer room; automation transformation software; Visual Basic; lightweight
目前,计算机机房管理在高校教学治理中的重要性日渐提升[1]。教师的教学质量、学生的专业技能掌握程度以及各种无纸化考试的有效性将直接受到计算机机房管理水平和维护水平的影响,它表现了一所高校信息化的总体水准[2]。高校计算机机房作为同学们研习计算机基础知识与专业技能的重要场所,是高校计算机讲学和科研的重要基地,同时是学生共享网络资源查阅相关资料的重要途径,而且越来越多的高校为了方便考试,选择利用计算机进行无纸化考试,但在进行无纸化考试之前,计算机管理者需要对每一台计算机的IP地址进行查看并贴上相应的号码牌用以标识,工作量大且繁复。另外,计算机管理者需要根据学生课程要求对计算机进行软件的更新及系统的重装,可重装后用户名和IP地址等都会变为同一初始值,管理者需对每一台计算机进行修改和配置。所以,计算机机房的管理和维护十分必要。而管理人员唯有深刻明了计算机机房的管理现状和存在的问题,才能建立科学有用的管理办法,切实做好计算机机房的管理与维护工作,充分提高计算机设备的使用效率,保证平常的教学、培训和测验工作正常进行 [3]。
1 软件总体设计
根据对计算机机房管理员日常工作内容的调查和了解,该软件设计了三个程序:学生机上运行收集信息的客户端程序,教师机上运行的服务端程序及学生机上运行自动修改配置信息的配置端程序。运行机制如下图1所示:
首先客户端程序在学生机进行本地扫描收集信息,与教师机的服务端程序建立连接,再对每一台学生机进行IP地址、MAC地址、用户名和计算机名的收集,将其数据传输给教师机的服务端程序。服务端获取学生机传输的数据即每台学生机的IP地址、MAC地址、用戶名和计算机名后,就可以将这些信息汇集并且显示成数据列表,然后导出配置信息保存为XML或其他格式更简单的文本文件。学生机上的配置端程序以保存后的文本文件为配置信息,与本地扫描到的IP地址、MAC地址、用户名和计算机名进行匹配比对。若一致,说明该学生机的信息已经正确配置,程序退出;若不一致,则按照配置文件的记录进行修改。
2 软件的详细设计和实现
2.1 客户端程序的设计与实现
客户端程序的设计完成了前面阶段确定下来的系统需求,通过这个窗口显示本机IP地址以及通过教师机服务端给予编号,也可以最小化或者关闭。
同时,客户端程序会加载winsock控件,获取本机物理地址。通过MAC地址逐行比对CSV文件并对比含有本地mac地址记录的其他字段,保证本地的配置信息和这些字段一致。Timer为高精度计时器,在窗体上添加一个timer控件,定时和服务端建立连接发送本机当前的配置信息。代码如图2、图3所示:
2.2 客户机的配置端
客户机的配置端以本地的XML文件内容来配置本地计算机。为了实现计算机名等信息的读取和修改,我们尽量使用MSDN上提供的API和组件,这样代码会比较稳定。但在实践时不是总能找到合适的组件和API,所以我们不得不通过修改注册表来实现。
2.2.1 运用VBA读取计算机名
运用VBA读取计算机名,代码如图4所示:
开始,我们采用VBA的方式读取计算机名,它的API比较简单。Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言[4]。但是,若计算机名通过修改注册表的ComputerName项完成时,再用VBA方法读取计算机名需重启计算机才能实现,因此我们采用通过注册表读取计算机名。
2.2.2 通过注册表读取计算机名
为了让VB操作注册表,需要添加WScript.Shell对象。WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以类似cmd的方式运行程序,例如操作注册表、创建快捷方式、访问系统文件夹、管理环境变量等。从注册表中读取计算机名,应用的读取路径为HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName\ComputerName。
通过注册表读取计算机名代码如图5所示:
2.2.3 通过注册表修改计算机名
在命令提示符下用hostname命令可以查看本机的主机名,该命令用到了netbios协议,netbios名是在win98这样的系统下用于标示计算机的,在现行的一些操作系统中它依然存在,只是默认和计算机名相同,但仅限其前15位,因为netbios名最大也才16位,最后一位用来某种服务或应用程序。我们计算机机房的PC机都是统一成三位的ascii码。
computername就是本机的netbios,看翻译好像是计算机名,其实不要被误解了,在注册表中,名为hostname的项的键值才是真正的计算机名,也称之为主机名。我们还发现与该键值相等的还有ActiveComputerName,即会话过程中提供的计算机名。综上,修改注册表中的计算机名即hostname的项的键值有:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters路径下NV Hostname和Hostname的值。
通过注册表修改计算机名代码如图6所示:
2.3 读取和修改计算机IP地址
对于网络参数的管理,我们加载了VB中的winsock控件,可以获取计算机物理地址。引用WMI工程,WMI脚本对象库由24个对象组成,我们一般只用到其中的四个对象,其继承和层级关系如下:
SwbemLocator教本库对象→SwbemServicesWMI服务对象→SwbemObjectSet类实例集合对象→SwbemObject类的实例。
winmgmts表示为WMI服务,利用WMI服务获取系统信息。
SwbemServices.ExecQuery(strQuery),strQuery为WMI查询语言(WQL)构造的一个查询语句字符串。
root\cimv2 在这个命名空间里包括了绝大多数与计算机、操作系统相关联的类。
readIp = objSWbemObject.IPAddress(0) 设置网卡IP地址。
读取计算机IP地址代码如图7所示:
同理,修改计算机IP地址也是应用winsock控件,SwbemObjectSet对象,代码如图8所示:
2.4 服务端程序的设计与实现
服务端程序通过建立多个http连接来收集局域网内安装客户端的计算机的电脑名、IP地址、MAC地址等信息,统一保存到info.xml文件中。如图9、图10所示:
3 结语
在研究的实现过程中,我发现软件开发并没有想象中的那么简单,始终无法真正地将课本知识運用到实践中,这让我意识到,程序员具备丰富专业知识的必要性和团队协作的重要性。同时,也认识到良好的代码编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。作为一个程序员,对需求的理解能力也是很重要的,只有真正理解了一个模块的作用,才会写出高效率的代码,才能使整个软件项目做出来更加完善。现阶段系统已基本完善,但还存在许多不足之处,如界面不够美观、系统不够人性化等,这些问题都有待解决。下一阶段,我们需要精简模块,如让服务端不需要客户端就可以收集局域网内的计算机的mac地址等信息,应用多线程等技术提高系统的效率。
参考文献:
[1] 忻友.浅谈我国银行计算机管理系统维护的现状与对策[J].广东科技.2012(13):223-224.
[2] 焦纯,陈马丁.利用API接口实现VB3_0通讯程序设计.软件世界.1997(2):41-43.
[3] 刘琪.计算机局域网络IP地址的自动修改.科技资讯.2017(3):82.
[4] 党小云,于卫红.VBA在多媒体课件中的运用.电脑编程技巧与维护.2012(2):130-132.
[5] 沈洪,施明利,朱军.VB程序设计.清华大学出版社.2009(7):227.
【通联编辑:梁书】