国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Windows腳本技術(shù)在機房維護與管理中的應(yīng)用

2014-07-28 04:58:56龍文頌
電腦知識與技術(shù) 2014年18期

摘要:Windows腳本程序能夠在Windows系統(tǒng)環(huán)境下快速地完成機房軟件的安裝與部署,為機房維護與管理節(jié)省大量的人力和財力資源。該文設(shè)計了 Windows腳本執(zhí)行流程圖,分別實現(xiàn)了讀取主機名、修改UGS配置文件、修改UGS環(huán)境變量、讀取MAC地址、修改ProE配置文件、重啟計算機和刪除腳本程序等七個功能模塊。實踐證明,采用Windows腳本程序,能夠快速解決軟件的批量安裝與配置問題。

關(guān)鍵詞:Windows腳本;WSH;VBS;機房維護;自動化執(zhí)行

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)18-4151-04

1 問題的提出

Unigraphics NX(UGNX)是一個交互式CAD/CAM系統(tǒng),功能強大,可以輕松實現(xiàn)各種復(fù)雜實體及造型的建構(gòu),已經(jīng)成為模具行業(yè)三維設(shè)計的一個主流應(yīng)用。Pro/ENGINEER(ProE)是現(xiàn)今主流的CAD/CAM/CAE三維軟件之一,作為當(dāng)今世界機械CAD/CAE/CAM領(lǐng)域的新標(biāo)準(zhǔn)而得到業(yè)界的認可和推廣,特別是在國內(nèi)產(chǎn)品設(shè)計領(lǐng)域占據(jù)重要位置。UGNX和ProE是模具設(shè)計、數(shù)控加工、汽車設(shè)計等專業(yè)重要的兩款大型教學(xué)軟件。由于這兩款軟件非常龐大,UGNX6.0版本接近2GB,而ProE5.0版本則超過3GB,因此在安裝軟件時需要耗費大量的人力和時間。

目前大多數(shù)大中專院校同一機房的計算機配置都基本相同,根據(jù)常見的機房軟件維護模式,可以采用兩種方式。方式一:選擇一臺狀況良好的計算機,首先安裝UGNX和ProE并完成配置,在確保軟件能夠正常運行之后,以此計算機作為發(fā)送端,利用增量同傳或網(wǎng)絡(luò)同傳的功能將本機所安裝的軟件同傳至其他計算機中[1],待同傳操作完成后再對各計算機的UGNX和ProE進行單機配置。方式二:在已有操作系統(tǒng)的環(huán)境下,將UGNX和ProE的安裝文件復(fù)制到各學(xué)生機器,再單獨安裝和配置。

可以看出,方式一在后續(xù)的單機配置中需要耗費較多的時間,而方式二在文件復(fù)制和安裝中需要耗費更多的時間。在同等人力和時間長度的情況下,方式一是值得推薦的機房軟件維護方式。但是,UGNX和ProE這兩款軟件通過網(wǎng)絡(luò)同傳后并不能正常使用,后續(xù)的設(shè)置工作又將變成繁瑣的體力勞動。因此,探索出一種能快速有效而且能夠自動化執(zhí)行的解決方案,以緩解計算機系統(tǒng)管理員的勞動強度,更是迫在眉睫。

2 Windows腳本技術(shù)簡介

在Windows操作系統(tǒng)中內(nèi)置了Microsoft VBScript(即VBS)和JScript腳本引擎。在早期,腳本廣泛地用于Web開發(fā)方面,這是因為早期腳本是在客戶端的IE瀏覽器、服務(wù)器的llS這樣的環(huán)境中運行的。但自從Windows98之后,在Windows操作系統(tǒng)中內(nèi)置了WSH(Windows Script Host),即Windows腳本宿主環(huán)境,在客戶端上使用腳本編程成為可能。WSH從最早的1.0版直至現(xiàn)在5.6版本,WSH腳本宿主環(huán)境變得越來越成熟,應(yīng)用越來越廣泛。

WSH是一種基于面向?qū)ο蟮木幊陶Z言環(huán)境,其內(nèi)置對象封裝了大量的Windows API函數(shù),構(gòu)成了以根為Wscript對象、包含14個對象組成的Windows腳本宿主對象模型。利用WSH可以輕松地完成一系列繁瑣的工作,例如,批量進行文件改名、刪除;映射網(wǎng)絡(luò)驅(qū)動器、打印機;訪問注冊表等等。還可以結(jié)合強大的COM組件技術(shù)控制OFFICE成員對象,結(jié)合ODBC技術(shù)訪問各類數(shù)據(jù)庫等等。

當(dāng)執(zhí)行腳本文件時,Windows操作系統(tǒng)會啟動Windows腳本宿主,由Windows腳本宿主調(diào)用與之相關(guān)的腳本引擎來解釋,并運行該腳本文件。就VBScript和JScript腳本而言,VBScript更受編程人員的喜愛。VBScript是Visual Basic的一個抽象子集,是一個高效、強大而易于學(xué)習(xí)的編程語言,最方便的是它可以不需要專用的開發(fā)環(huán)境,使用記事本工具就可以編寫VBS腳本并直接執(zhí)行[2]。

3 Windows腳本執(zhí)行流程設(shè)計

通過網(wǎng)絡(luò)同傳后的UGNX和ProE并不能正常使用,根據(jù)軟件安裝說明書得知,UGNX安裝完成后需要將系統(tǒng)環(huán)境變量“UGS_LICENSE_SERVER”的值設(shè)置為本地主機名,以及ugs2.lic(UGNX6.0以上版本為ugs4.lic)文件中的“this_host”需要替換成本地主機名,而ProE則需將license.dat(部分版本為PTC_lic.dat)文件中的MAC地址“00-00-00-00-00-00”替換為本地主機MAC地址。

由于整個機房的計算機都是通過網(wǎng)絡(luò)同傳完成的,因此每一臺計算機軟件的安裝位置與配置文件所在的位置都能保持一致。一般來說,計算機所安裝的軟件的路徑都能夠通過讀取注冊表來獲取,然而在第一次安裝軟件時,文件的安裝路徑與配置文件的路徑都已經(jīng)被固定下來,為確保腳本文件的可讀性與簡易性,可以假設(shè)第一臺主機MAC地址為“00-11-22-33-44-55”,UGNX配置文件在“D:\Soft\UGS\ugs2.lic”(通常在安裝UGNX時系統(tǒng)會自動生成該文件)、ProE的配置文件在“D:\Soft\ProE\license.dat”目錄中,則可以根據(jù)軟件安裝說明書編制自動化執(zhí)行腳本程序,腳本執(zhí)行流程如圖1所示。

圖1 Windows腳本執(zhí)行流程圖

4 功能模塊設(shè)計與實現(xiàn)

由圖1可知,整個腳本程序由七個功能模塊組成,分別是:讀取主機名、修改UGS配置文件、修改UGS環(huán)境變量、讀取MAC地址、修改ProE配置文件、重啟計算機和刪除腳本程序,為保證腳本程序的模塊化和可讀性,這七個功能模塊分別采用七個過程來實現(xiàn)。

4.1 全局變量設(shè)定模塊

由于腳本程序所使用的參數(shù)值基本保持不變,并且為了便于參數(shù)值的修改,因此可以將參數(shù)定義為全局變量。其中,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 讀取當(dāng)前計算機主機名模塊

在WSH對象模型中,WshNetwork對象提供對計算機所連接的網(wǎng)絡(luò)上共享資源的訪問, 該對象的屬性能獲取計算機系統(tǒng)的名稱、用戶的域名和用戶名等網(wǎng)絡(luò)信息,其中ComputerName屬性用于獲取計算機系統(tǒng)的名稱,該對象的訪問需要先創(chuàng)建WScript.Network對象的實例來實現(xiàn),代碼如下。

Function PC_NAME()

Set WS = WScript.CreateObject("WScript.Network")

PC_NAME = WS.ComputerName

End Function

4.3修改UGS認證服務(wù)器名稱模塊

自Windows NT系統(tǒng)開始,Windows操作系統(tǒng)的環(huán)境變量有“System”、“User”、“Volatile”和“Process”四種類型。在WSH對象模型中,WshEnvironment對象提供對Windows環(huán)境變量集合的訪問,該對象是一個由WshShell對象的Environment屬性返回的環(huán)境變量集合,該集合包含全部的環(huán)境變量,要獲取集合中某個具體的環(huán)境變量及其值,可以使用環(huán)境變量類型作為索引。其中,WshEnvironment對象的Item屬性用于獲取環(huán)境變量名的值[3]。

UGNX安裝完成后,軟件會自動創(chuàng)建“UGS_LICENSE_SERVER”系統(tǒng)級變量名,變量值格式為“28000@主機名”,在變量值中,需要修改的僅有主機名部分,因此可以將字符串“28000@”與PC_NAME函數(shù)所獲取的當(dāng)前主機名拼接,并替換原變量值,代碼如下。

Function EDIT_UGS_LICENSE_SERVER()

Set WS = WScript.CreateObject("WScript.Shell")

WS.Environment("SYSTEM").Item("UGS_LICENSE_SERVER") =”28000@" & PC_NAME

End Function

4.4 修改UGS配置文件模塊

根據(jù)UGNX安裝說明文件得知,任意版本的配置文件只需修改第一行即可,格式為“SERVER 主機名 ID=版本日期 端口號”,由于主機名有可能與配置文件中的某些內(nèi)容相同,因而不能采用簡單的查找與替換的方法。另外,不同的軟件版本,版本日期不同,如果隨意修改,則會導(dǎo)致軟件無法正常啟動。從配置文件第一行的結(jié)構(gòu)可以看出,關(guān)鍵是需要截取出“=”之后的內(nèi)容。因此可以按照以下步驟來進行,首先,通過FileSystemObject對象的FileExists方法[4]判斷配置文件是否存在,若存在則通過OpenTextFile方法讀取配置文件第一行內(nèi)容,利用Split函數(shù)獲取“版本日期 端口號”子串;其次,按照格式進行字符串的拼接;第三,讀取配置文件剩余部分內(nèi)容,并與第一行內(nèi)容進行拼接;最后,通過TextStream對象的Write方法將拼接之后的內(nèi)容重新寫入配置文件中,代碼如下。

Function EDIT_UGS_LICENSING()

Set fso = WScript.CreateObject("Scripting.FileSystemObject")

If fso.FileExists(UGS_LIC_FILE) Then

Set f = fso.OpenTextFile(UGS_LIC_FILE, R)

Do While Not f.AtEndOfStream

If f.Line = 1 Then

s = "SERVER " &PC_NAME&" ID="&Split(f.ReadLine, "=")(1)

End If

s = s &vbCrLf&f.ReadLine

Loop

Set f = fso.OpenTextFile(UGS_LIC_FILE, W)

f.Write s

f.Close

End If

End Function

4.5 獲取計算機MAC地址模塊

Win32_NetworkAdapterConfiguration是管理基于Windows系統(tǒng)的TCP/IP網(wǎng)絡(luò)配置一個最有用的WMI類,通過調(diào)用SWbemServices對象的InstancesOf()方法將返回一個對象集合,該集合是一個包括零個或多個SWbemObject實例的SWbemObjectSet集合。首先使用“Winmgmts:”標(biāo)記連接到WMI服務(wù),其次使用InstancesOf方法檢索 Win32_NetworkAdapterConfiguration 類的所有實例,再通過GetObject函數(shù)返回一個由計算機上的所有網(wǎng)絡(luò)適配器配置組成的集合,最后通過IPEnabled屬性為True篩選出可用的網(wǎng)絡(luò)適配器,另外通過Replace函數(shù)將獲取的MAC地址中的“:”替換成“-”字符,具體代碼如下。endprint

Function GET_MAC()

Set Mc = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")

For Each Mo In Mc

If Mo.IPEnabled = True Then

Mac = Mo.MacAddress

Exit For

End If

Next

GET_MAC = Replace(Mac, ":", "-")

End Function

4.6 修改ProE配置文件模塊

由于ProE配置文件中多處存在MAC字符,因此只能采用查找與替換功能。首先,以只讀模式打開配置文件;其次,讀取全部內(nèi)容,利用Replace函數(shù)將獲取的主機MAC替換配置文件原有的MAC字符;最后,以只寫模式打開配置文件,將替換之后的字符寫入文件中,代碼如下。

Sub EDIT_PROE_LICENSE()

Set fso = WScript.CreateObject("Scripting.FileSystemObject")

If fso.FileExists(PROE_LIC_FILE) Then

Set f = fso.OpenTextFile(PROE_LIC_FILE, R)

s = Replace(f.ReadAll, KEYWORDS, GET_MAC)

f.Close

Set f = fso.OpenTextFile(PROE_LIC_FILE, W)

f.Write s

f.Close

End If

End Sub

4.7 重啟計算機模塊

Windows XP系統(tǒng)通常通過Shutdown.exe程序來完成關(guān)機操作,參數(shù)[-r]和[-t]可以分別設(shè)置計算機重啟與延遲時間。要從WSH腳本中啟動另一個應(yīng)用程序,必須使用WshShell對象的Run方法,Run方法會啟動程序并執(zhí)行包含參數(shù)的命令。為了保證軟件在讀取重新配置文件后能夠正常啟動,腳本程序需要控制計算機自動重新啟動,代碼如下。

Sub REBOOT_PC()

Set WS = WScript.CreateObject("WScript.Shell")

WS.Run REBOOT

End Sub

4.8 刪除腳本程序模塊

在WSH對象模型中,使用FileSystemObject對象存取磁盤驅(qū)動器、文件夾和文件,該對象的方法和屬性具有對文件夾和文件進行復(fù)制、更名、移動和刪除的功能,其中DeleteFile方法用于刪除指定的文件,同時使用Wscript對象ScriptFullName屬性獲取當(dāng)前運行腳本文件的完整路徑。由于刪除腳本前需要先執(zhí)行計算機重啟操作,因此本模塊的執(zhí)行必須放在“重啟計算機模塊”之后進行,具體代碼如下。

Sub DELETE_SCRIPT()

Set fso = WScript.CreateObject("Scripting.FileSystemObject")

f = fso.DeleteFile(WScript.ScriptFullName)

End Sub

5 腳本程序的運行

在完成以上腳本編寫之后,將代碼復(fù)制到文本文件中保存為“.vbs”腳本文件,通過多媒體廣播軟件分發(fā)至各學(xué)生機中,并遠程執(zhí)行該腳本文件。為確保各計算機的軟件都能正常運行,在機器重新啟動后,可以隨機抽查軟件的運行情況。

6 結(jié)束語

計算機機房是學(xué)生技能訓(xùn)練和教學(xué)實訓(xùn)的重要場所,在日常教學(xué)中占據(jù)重要地位。由于機房需要安裝眾多類型的教學(xué)軟件,且各軟件的安裝與配置各不相同,如何在有限的時間內(nèi)更快速更高效地完成機房軟件安裝與調(diào)試,成為機房維護人員和計算機教學(xué)人員必須考慮的問題。隨著學(xué)校專業(yè)的不斷細化,各種教學(xué)軟件越來越龐大,對硬件資源的需求也越來越多,機房維護的重要性越加突出。通過實踐證明,Windows腳本文件能很好的在Windows XP系統(tǒng)中解決軟件的安裝與配置問題,在實際應(yīng)用中,并不需要逐臺進行設(shè)置。2014年4月8日,Windows XP已經(jīng)正式退出歷史舞臺,目前大部分學(xué)校的系統(tǒng)正逐步過渡到Windows 7系統(tǒng),以上代碼經(jīng)過略為修改后同樣能夠在Windows 7系統(tǒng)中完成軟件的批量安裝與設(shè)置。

參考文獻:

[1] 束鎖平.基于MAC地址計算機登錄名修改——用于全國計算機等級機房環(huán)境自動設(shè)置[J].南陽師范學(xué)院學(xué)報,2013(9):33.

[2] 劉珊.基于Windows腳本技術(shù)的計算機信息采集[J].計算機系統(tǒng)應(yīng)用,2010(7):166-167.

[3] (美)Brian Knitte.Windows 7 腳本編程和命令行工具指南[M].北京:機械工業(yè)出版社,2011.

[4] Microsoft幫助文檔,Microsoft Windows腳本技術(shù).endprint

靖江市| 乌拉特后旗| 建平县| 宣恩县| 乃东县| 荥阳市| 东乌珠穆沁旗| 西贡区| 松滋市| 梁平县| 庄浪县| 晋江市| 札达县| 肃南| 武平县| 珠海市| 玉溪市| 武威市| 和林格尔县| 南溪县| 台东县| 泽库县| 平江县| 常山县| 图木舒克市| 乌鲁木齐县| 双鸭山市| 洮南市| 盐边县| 黄骅市| 光泽县| 花莲县| 桦川县| 平乐县| 丹东市| 新丰县| 苗栗县| 高尔夫| 台北市| 博乐市| 张家口市|