學生機房新上了一批計算機,根據(jù)學校的要求,要登記計算機的信息,包括計算機名、主機序列號、MAC地址。本人之前制作過一個用于收集計算機信息的VBS腳本,用法是將腳本拷貝到U盤,然后將U盤接到要登記信息的計算機上,運行VBS腳本后生成一個文本文件,即完成信息的收集。這種辦法雖然可行,但在機房每臺計算機上操作一遍,效率太低。
考慮了一番后,決定利用電子教室軟件來統(tǒng)一收集信息。思路為,在教師機上通過電子教室軟件,將VBS腳本發(fā)送到學生機,然后遠程執(zhí)行該腳本,將收集的信息寫入到教師機共享的文件夾內(nèi)。實施的過程并不順利,現(xiàn)將遇到的問題及解決過程記錄下來,與大家分享。
圖1 腳本d430.vbs
首先說明一下,機房計算機型號為D430,教師機和學生機安裝的操作系統(tǒng)均為Windows 7旗艦版,IP地址為192.168.12.100(教師機JF2-00),192.168.12.101~ 159(學生機JF2-01~59)。
在教師機上創(chuàng)建文件夾jf2,并設(shè)置共享,權(quán)限為允許everyone“完全控制”。
由于之前收集信息是寫入VBS腳本所在文件夾,因此需要修改文件路徑為共享文件夾。
修改后的腳本d430.vbs內(nèi)容如圖1所示。
雙擊運行d430.vbs,彈出“本機信息采集完成,請退出!”,jf2文件夾下成功創(chuàng)建了jf2.txt,內(nèi)容如下:
--二機房計算機信息--
JF2-00,DTVMPCNB067200 011E9600,F4:4D:30:9F:71:06,OK!
腳本運行成功!
在教師機上打開電子教室軟件,添加遠程命令(如圖2)。添加完成后,單擊“本地執(zhí)行”(如圖3),發(fā)現(xiàn)沒有任何提示,將jf2.txt刪除后再單擊“本地執(zhí)行”,仍未提示,也未創(chuàng)建jf2.txt。
原因分析:電子教室軟件無法執(zhí)行VBS腳本。
解決辦法:創(chuàng)建一批處理文件d430.bat,內(nèi)容為:d:d430.vbs,即通過執(zhí)行該批處理程序來調(diào)用d430.vbs。在電子教室軟件中,添加遠程命令(如圖4),然后單擊“本地執(zhí)行”按鈕,成功創(chuàng)建了jf2.txt并收集到信息。
第四步:傳文件到學生機(注:電子教室軟件中非常好用的功能)
通過電子教室軟件,將d430.vbs和d430.bat發(fā)送到學生機D盤根目錄。
第五步:遠程執(zhí)行
選擇所有學生機,在圖3窗口中選中d430.bat,單擊“遠程執(zhí)行”,以運行學生機上的d430.bat。
在遠程執(zhí)行步驟遇到了一系列問題,分別說明一下。
學生機運行后,彈出錯誤提示“登錄失?。河脩糍~戶限制……”。
原因分析:在默認情況下,要想訪問Windows 7系統(tǒng)的共享文件夾,必須輸入要訪問的計算機上的用戶名和密碼,如果不設(shè)密碼,訪問時就會提示錯誤。
圖2 添加命令
圖3 本地執(zhí)行命令d430.vbs
圖4 添加命令d430.bat
解決辦法:修改教師機本地安全策略,允許空密碼遠程登錄。具體步驟為:運行g(shù)pedit.msc,打開組策略編輯器,依次點開“計算機配置→Windows設(shè)置→安全設(shè)置→本地策略→安全選項”,在右側(cè)窗格中找到并打開“賬戶:使用空密碼的本地賬戶只允許進行控制臺登錄”,設(shè)置為“已禁用”。
修改后再次“遠程執(zhí)行”,有5臺學生機提示采集完成,其他均彈出錯誤提示“沒有權(quán)限”和“已達到計算機的連接數(shù)最大值,無法再同此遠程計算機連接”。打開jf2.txt,發(fā)現(xiàn)數(shù)據(jù)有些交叉錯亂。
在幾臺提示錯誤的學生機上,單獨執(zhí)行d430.bat,均可完成信息采集。據(jù)此判斷,不論錯誤提示是“沒有權(quán)限”,還是“已達到計算機的連接數(shù)最大值”,出錯原因應(yīng)該是在有過多的學生機同時訪問上。
百度搜索了一下“已達到計算機的連接數(shù)最大值”,方法有三類:添加共享名、修改本地安全策略或遠程終端限制連接數(shù)、在服務(wù)器版操作系統(tǒng)上共享。
經(jīng)過一一測試,有的方法雖能解決連接數(shù)問題,但仍無法解決“沒有權(quán)限”和數(shù)據(jù)交叉錯亂問題。
原因分析:應(yīng)是同時寫入同一文本文件的學生機過多,導(dǎo)致了上面的錯誤。
解決辦法:兩個方案
方案一,讓學生機按順序逐一執(zhí)行VBS腳本,即讓1號學生機
1秒后運行d430.vbs,2號 機 2秒 后 運行,依此類推。
具體是這樣實現(xiàn)的:修改批處理程序d430.bat,先提取學生機IP地址最后一組數(shù)字,再減100,將得數(shù)賦值給變量ip4,由于ping 127.0.0.1一次用時1秒,加參數(shù) -n “ip4”后表示“ip4”秒后再執(zhí)行d430.vbs。
修改后的d430.bat內(nèi)容如圖5所示。
將修改后d430.bat發(fā)送到學生機,“遠程執(zhí)行”。
學生機跟預(yù)想的一樣,按順序逐一執(zhí)行成功。
圖5 修改后的d430.bat內(nèi)容
方案二,讓學生機執(zhí)行VBS腳本時分別創(chuàng)建不同的文本文件(以計算機名命名),再通過DOS命令(type JF2-*.txt >>jf2.txt)將所有文本文件內(nèi)容寫入jf2.txt。
VBS腳本也需要修改,將獲取計算機名部分的代碼調(diào)整到腳本最前端,然后將創(chuàng)建的文件OutPutFile賦值語句修改為:
實際測試時,方案二的實現(xiàn)仍要先解決“已達到計算機的連接數(shù)最大值”問題。
注:在教師機上添加共享名和修改本地安全策略或遠程終端限制連接數(shù)的方法,均未解決該問題。本人最終是在一臺Windows Server 2012虛擬機上搭建共享文件夾測試的(操作比較簡單,不再贅述)。
上述兩個方案均通過測試,但方案一實現(xiàn)起來要簡單一些,推薦使用。