论文部分内容阅读
摘要:Windows脚本程序能够在Windows系统环境下快速地完成机房软件的安装与部署,为机房维护与管理节省大量的人力和财力资源。该文设计了 Windows脚本执行流程图,分别实现了读取主机名、修改UGS配置文件、修改UGS环境变量、读取MAC地址、修改ProE配置文件、重启计算机和删除脚本程序等七个功能模块。实践证明,采用Windows脚本程序,能够快速解决软件的批量安装与配置问题。
关键词:Windows脚本;WSH;VBS;机房维护;自动化执行
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4151-04
1 问题的提出
Unigraphics NX(UGNX)是一个交互式CAD/CAM系统,功能强大,可以轻松实现各种复杂实体及造型的建构,已经成为模具行业三维设计的一个主流应用。Pro/ENGINEER(ProE)是现今主流的CAD/CAM/CAE三维软件之一,作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广,特别是在国内产品设计领域占据重要位置。UGNX和ProE是模具设计、数控加工、汽车设计等专业重要的两款大型教学软件。由于这两款软件非常庞大,UGNX6.0版本接近2GB,而ProE5.0版本则超过3GB,因此在安装软件时需要耗费大量的人力和时间。
目前大多数大中专院校同一机房的计算机配置都基本相同,根据常见的机房软件维护模式,可以采用两种方式。方式一:选择一台状况良好的计算机,首先安装UGNX和ProE并完成配置,在确保软件能够正常运行之后,以此计算机作为发送端,利用增量同传或网络同传的功能将本机所安装的软件同传至其他计算机中[1],待同传操作完成后再对各计算机的UGNX和ProE进行单机配置。方式二:在已有操作系统的环境下,将UGNX和ProE的安装文件复制到各学生机器,再单独安装和配置。
可以看出,方式一在后续的单机配置中需要耗费较多的时间,而方式二在文件复制和安装中需要耗费更多的时间。在同等人力和时间长度的情况下,方式一是值得推荐的机房软件维护方式。但是,UGNX和ProE这两款软件通过网络同传后并不能正常使用,后续的设置工作又将变成繁琐的体力劳动。因此,探索出一种能快速有效而且能够自动化执行的解决方案,以缓解计算机系统管理员的劳动强度,更是迫在眉睫。
2 Windows脚本技术简介
在Windows操作系统中内置了Microsoft VBScript(即VBS)和JScript脚本引擎。在早期,脚本广泛地用于Web开发方面,这是因为早期脚本是在客户端的IE浏览器、服务器的llS这样的环境中运行的。但自从Windows98之后,在Windows操作系统中内置了WSH(Windows Script Host),即Windows脚本宿主环境,在客户端上使用脚本编程成为可能。WSH从最早的1.0版直至现在5.6版本,WSH脚本宿主环境变得越来越成熟,应用越来越广泛。
WSH是一种基于面向对象的编程语言环境,其内置对象封装了大量的Windows API函数,构成了以根为Wscript对象、包含14个对象组成的Windows脚本宿主对象模型。利用WSH可以轻松地完成一系列繁琐的工作,例如,批量进行文件改名、删除;映射网络驱动器、打印机;访问注册表等等。还可以结合强大的COM组件技术控制OFFICE成员对象,结合ODBC技术访问各类数据库等等。
当执行脚本文件时,Windows操作系统会启动Windows脚本宿主,由Windows脚本宿主调用与之相关的脚本引擎来解释,并运行该脚本文件。就VBScript和JScript脚本而言,VBScript更受编程人员的喜爱。VBScript是Visual Basic的一个抽象子集,是一个高效、强大而易于学习的编程语言,最方便的是它可以不需要专用的开发环境,使用记事本工具就可以编写VBS脚本并直接执行[2]。
3 Windows脚本执行流程设计
通过网络同传后的UGNX和ProE并不能正常使用,根据软件安装说明书得知,UGNX安装完成后需要将系统环境变量“UGS_LICENSE_SERVER”的值设置为本地主机名,以及ugs2.lic(UGNX6.0以上版本为ugs4.lic)文件中的“this_host”需要替换成本地主机名,而ProE则需将license.dat(部分版本为PTC_lic.dat)文件中的MAC地址“00-00-00-00-00-00”替换为本地主机MAC地址。
由于整个机房的计算机都是通过网络同传完成的,因此每一台计算机软件的安装位置与配置文件所在的位置都能保持一致。一般来说,计算机所安装的软件的路径都能够通过读取注册表来获取,然而在第一次安装软件时,文件的安装路径与配置文件的路径都已经被固定下来,为确保脚本文件的可读性与简易性,可以假设第一台主机MAC地址为“00-11-22-33-44-55”,UGNX配置文件在“D:\Soft\UGS\ugs2.lic”(通常在安装UGNX时系统会自动生成该文件)、ProE的配置文件在“D:\Soft\ProE\license.dat”目录中,则可以根据软件安装说明书编制自动化执行脚本程序,脚本执行流程如图1所示。
图1 Windows脚本执行流程图
4 功能模块设计与实现
由图1可知,整个脚本程序由七个功能模块组成,分别是:读取主机名、修改UGS配置文件、修改UGS环境变量、读取MAC地址、修改ProE配置文件、重启计算机和删除脚本程序,为保证脚本程序的模块化和可读性,这七个功能模块分别采用七个过程来实现。 4.1 全局变量设定模块
由于脚本程序所使用的参数值基本保持不变,并且为了便于参数值的修改,因此可以将参数定义为全局变量。其中,UGS_LIC_FILE为UGNX配置文件所在的路径,KEYWORDS为需要被替换的MAC地址,PROE_LIC_FILE为ProE配置文件所在路径,R和W分别指定文件的读写模式,REBOOT为计算机重启命令,代码如下。
Const UGS_LIC_FILE = "D:\Soft\UGS\UGSLICENSING\ugs2.lic"
Const KEYWORDS = "00-11-22-33-44-55"
Const PROE_LIC_FILE = "D:\Soft\ProE\license.dat"
Const R = 1, W = 2
Const REBOOT = "shutdown -r -t 10"
4.2 读取当前计算机主机名模块
在WSH对象模型中,WshNetwork对象提供对计算机所连接的网络上共享资源的访问, 该对象的属性能获取计算机系统的名称、用户的域名和用户名等网络信息,其中ComputerName属性用于获取计算机系统的名称,该对象的访问需要先创建WScript.Network对象的实例来实现,代码如下。
Function PC_NAME()
Set WS = WScript.CreateObject("WScript.Network")
PC_NAME = WS.ComputerName
End Function
4.3修改UGS认证服务器名称模块
自Windows NT系统开始,Windows操作系统的环境变量有“System”、“User”、“Volatile”和“Process”四种类型。在WSH对象模型中,WshEnvironment对象提供对Windows环境变量集合的访问,该对象是一个由WshShell对象的Environment属性返回的环境变量集合,该集合包含全部的环境变量,要获取集合中某个具体的环境变量及其值,可以使用环境变量类型作为索引。其中,WshEnvironment对象的Item属性用于获取环境变量名的值[3]。
UGNX安装完成后,软件会自动创建“UGS_LICENSE_SERVER”系统级变量名,变量值格式为“28000@主机名”,在变量值中,需要修改的仅有主机名部分,因此可以将字符串“28000@”与PC_NAME函数所获取的当前主机名拼接,并替换原变量值,代码如下。
Function EDIT_UGS_LICENSE_SERVER()
Set WS = WScript.CreateObject("WScript.Shell")
WS.Environment("SYSTEM").Item("UGS_LICENSE_SERVER") =”28000@"
关键词:Windows脚本;WSH;VBS;机房维护;自动化执行
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4151-04
1 问题的提出
Unigraphics NX(UGNX)是一个交互式CAD/CAM系统,功能强大,可以轻松实现各种复杂实体及造型的建构,已经成为模具行业三维设计的一个主流应用。Pro/ENGINEER(ProE)是现今主流的CAD/CAM/CAE三维软件之一,作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广,特别是在国内产品设计领域占据重要位置。UGNX和ProE是模具设计、数控加工、汽车设计等专业重要的两款大型教学软件。由于这两款软件非常庞大,UGNX6.0版本接近2GB,而ProE5.0版本则超过3GB,因此在安装软件时需要耗费大量的人力和时间。
目前大多数大中专院校同一机房的计算机配置都基本相同,根据常见的机房软件维护模式,可以采用两种方式。方式一:选择一台状况良好的计算机,首先安装UGNX和ProE并完成配置,在确保软件能够正常运行之后,以此计算机作为发送端,利用增量同传或网络同传的功能将本机所安装的软件同传至其他计算机中[1],待同传操作完成后再对各计算机的UGNX和ProE进行单机配置。方式二:在已有操作系统的环境下,将UGNX和ProE的安装文件复制到各学生机器,再单独安装和配置。
可以看出,方式一在后续的单机配置中需要耗费较多的时间,而方式二在文件复制和安装中需要耗费更多的时间。在同等人力和时间长度的情况下,方式一是值得推荐的机房软件维护方式。但是,UGNX和ProE这两款软件通过网络同传后并不能正常使用,后续的设置工作又将变成繁琐的体力劳动。因此,探索出一种能快速有效而且能够自动化执行的解决方案,以缓解计算机系统管理员的劳动强度,更是迫在眉睫。
2 Windows脚本技术简介
在Windows操作系统中内置了Microsoft VBScript(即VBS)和JScript脚本引擎。在早期,脚本广泛地用于Web开发方面,这是因为早期脚本是在客户端的IE浏览器、服务器的llS这样的环境中运行的。但自从Windows98之后,在Windows操作系统中内置了WSH(Windows Script Host),即Windows脚本宿主环境,在客户端上使用脚本编程成为可能。WSH从最早的1.0版直至现在5.6版本,WSH脚本宿主环境变得越来越成熟,应用越来越广泛。
WSH是一种基于面向对象的编程语言环境,其内置对象封装了大量的Windows API函数,构成了以根为Wscript对象、包含14个对象组成的Windows脚本宿主对象模型。利用WSH可以轻松地完成一系列繁琐的工作,例如,批量进行文件改名、删除;映射网络驱动器、打印机;访问注册表等等。还可以结合强大的COM组件技术控制OFFICE成员对象,结合ODBC技术访问各类数据库等等。
当执行脚本文件时,Windows操作系统会启动Windows脚本宿主,由Windows脚本宿主调用与之相关的脚本引擎来解释,并运行该脚本文件。就VBScript和JScript脚本而言,VBScript更受编程人员的喜爱。VBScript是Visual Basic的一个抽象子集,是一个高效、强大而易于学习的编程语言,最方便的是它可以不需要专用的开发环境,使用记事本工具就可以编写VBS脚本并直接执行[2]。
3 Windows脚本执行流程设计
通过网络同传后的UGNX和ProE并不能正常使用,根据软件安装说明书得知,UGNX安装完成后需要将系统环境变量“UGS_LICENSE_SERVER”的值设置为本地主机名,以及ugs2.lic(UGNX6.0以上版本为ugs4.lic)文件中的“this_host”需要替换成本地主机名,而ProE则需将license.dat(部分版本为PTC_lic.dat)文件中的MAC地址“00-00-00-00-00-00”替换为本地主机MAC地址。
由于整个机房的计算机都是通过网络同传完成的,因此每一台计算机软件的安装位置与配置文件所在的位置都能保持一致。一般来说,计算机所安装的软件的路径都能够通过读取注册表来获取,然而在第一次安装软件时,文件的安装路径与配置文件的路径都已经被固定下来,为确保脚本文件的可读性与简易性,可以假设第一台主机MAC地址为“00-11-22-33-44-55”,UGNX配置文件在“D:\Soft\UGS\ugs2.lic”(通常在安装UGNX时系统会自动生成该文件)、ProE的配置文件在“D:\Soft\ProE\license.dat”目录中,则可以根据软件安装说明书编制自动化执行脚本程序,脚本执行流程如图1所示。
图1 Windows脚本执行流程图
4 功能模块设计与实现
由图1可知,整个脚本程序由七个功能模块组成,分别是:读取主机名、修改UGS配置文件、修改UGS环境变量、读取MAC地址、修改ProE配置文件、重启计算机和删除脚本程序,为保证脚本程序的模块化和可读性,这七个功能模块分别采用七个过程来实现。 4.1 全局变量设定模块
由于脚本程序所使用的参数值基本保持不变,并且为了便于参数值的修改,因此可以将参数定义为全局变量。其中,UGS_LIC_FILE为UGNX配置文件所在的路径,KEYWORDS为需要被替换的MAC地址,PROE_LIC_FILE为ProE配置文件所在路径,R和W分别指定文件的读写模式,REBOOT为计算机重启命令,代码如下。
Const UGS_LIC_FILE = "D:\Soft\UGS\UGSLICENSING\ugs2.lic"
Const KEYWORDS = "00-11-22-33-44-55"
Const PROE_LIC_FILE = "D:\Soft\ProE\license.dat"
Const R = 1, W = 2
Const REBOOT = "shutdown -r -t 10"
4.2 读取当前计算机主机名模块
在WSH对象模型中,WshNetwork对象提供对计算机所连接的网络上共享资源的访问, 该对象的属性能获取计算机系统的名称、用户的域名和用户名等网络信息,其中ComputerName属性用于获取计算机系统的名称,该对象的访问需要先创建WScript.Network对象的实例来实现,代码如下。
Function PC_NAME()
Set WS = WScript.CreateObject("WScript.Network")
PC_NAME = WS.ComputerName
End Function
4.3修改UGS认证服务器名称模块
自Windows NT系统开始,Windows操作系统的环境变量有“System”、“User”、“Volatile”和“Process”四种类型。在WSH对象模型中,WshEnvironment对象提供对Windows环境变量集合的访问,该对象是一个由WshShell对象的Environment属性返回的环境变量集合,该集合包含全部的环境变量,要获取集合中某个具体的环境变量及其值,可以使用环境变量类型作为索引。其中,WshEnvironment对象的Item属性用于获取环境变量名的值[3]。
UGNX安装完成后,软件会自动创建“UGS_LICENSE_SERVER”系统级变量名,变量值格式为“28000@主机名”,在变量值中,需要修改的仅有主机名部分,因此可以将字符串“28000@”与PC_NAME函数所获取的当前主机名拼接,并替换原变量值,代码如下。
Function EDIT_UGS_LICENSE_SERVER()
Set WS = WScript.CreateObject("WScript.Shell")
WS.Environment("SYSTEM").Item("UGS_LICENSE_SERVER") =”28000@"