萬盛學電腦網

 萬盛學電腦網 >> windows 2000教程 >> Win2000--31.自動維護和監視公用計算機(上)在線閱讀

Win2000--31.自動維護和監視公用計算機(上)在線閱讀

 我們單位裡,會議室裡的Windows 2000 PC是最忙的PC,這些PC連接著投影設備,經常要運行PowerPoint之類的系統。為了避免網絡對幻燈放映效果的影響,用戶的典型做法是:首先登錄會議室的PC,然後從自己的機器上把PowerPoint演示文稿復制到本地。

由於會議室的PC很難做到定期維護,往往要到無法正常使用時才會引起注意,例如:有人想把一個演示文稿復制到會議室PC,卻發現磁盤已經滿了;有人從會議室PC復制了一個文件,卻發現這個文件帶有病毒;有時會意外地發現另一個擁有管理權限的用戶把C盤的全部訪問權授予了Guests組。為了解決諸如此類的問題,我們讓系統自動執行清理文件的任務並定期報告自己的狀態。
清理操作每周執行一次,防止磁盤空間耗盡。根據會議室PC的應用情況,清理任務包括:
1 刪除過期的用戶配置文件。大多數用戶經常忘記清理自己復制到會議室PC的演示文稿,這些PC上過時的用戶配置文件中充塞著大量被廢棄的文檔。只要刪除用戶配置文件,被廢棄的演示文稿也就一起被刪除。從實際情況判斷,凡是120天以上沒有人使用的配置文件,執行清理任務的腳本都可以安全地刪除它們。
2 刪除email文件。一些用戶通過會議室PC收發郵件,並把郵件留在了本地磁盤上(Outlook的.pst文件)。按照單位規定,會議室PC不允許收發email,所以必須刪除所有.pst文件。
3 刪除臨時文件。某些應用軟件會留下龐大的.tmp文件。刪除這類文件不影響正常使用。
每月報告一次PC的狀態。雖然每周執行清理任務,意外問題仍有可能出現。為了保證PC盡可能正常地運行,必須讓PC自動生成狀態報告並通過email發送給指定的收件人。報告內容包括:
1 可用的磁盤空間。由於用戶經常把龐大的多媒體文件復制到會議室PC,雖然每周執行自動清理過期用戶配置文件和臨時文件的操作,但磁盤空間仍是一個必須密切關注的問題。
2 病毒定義文件的更新日期。由於某些原因,如網絡故障,殺毒軟件McAfee VirusScan未能及時更新病毒定義信息,部分機器的病毒定義信息過期,使這些機器面臨被新型病毒感染的風險。由於每一台PC的配置 更新情況不一致,所以不能采用簡單的重新安裝軟件的辦法,只能讓腳本自動報告最後更新日期。
3 Messenger服務的狀態。在會議室PC上,為了防止Net Send網絡消息在放映幻燈時突然跳出來,所以禁用了Windows的Messenger服務。某些用戶可能在無意之中打開了Messenger服務,腳本必須報告該服務的狀態。
我們用AutoReport.bat批命令腳本完成上述任務。雖然這個腳本是為了維護會議室PC編寫的,但只要稍加改變,不難應用到其他場合。
一 刪除過期的用戶配置文件
為了刪除不再使用的用戶配置文件,AutoReport.bat用到了Delprof工具。這個工具在Microsoft Windows 2000 Server Resource Kit和Microsoft Windows NT Server 4.0 Resource Kit都有,但不同操作系統的工具不能混用。如果用了版本錯誤的Delprof,會出現錯誤信息“Entry point not found”。刪除過期用戶配置文件的命令為:
delprof.exe /q /d:120
/q選項表示Delprof以“安靜”模式運行,即在刪除用戶配置文件之前不必進行確認。/d:120選項指定了允許用戶配置持續保持不激活狀態的最長天數,也就是說,這裡要求Delprof刪除所有不激活時間超過120天的用戶配置文件。
二 刪除.pst和.tmp文件
為了刪除所有.pst和.tmp文件,腳本運用了一個For命令。For命令中的df是一個查找驅動器的免費工具,可以從http://www.tsc.com/~chrisd/public/df.zip下載。df的輸出內容很多,不僅僅是一個驅動器的清單,所以要把輸出重定向到Find命令。Find命令查找輸出內容中包含冒號(:)的字符串——即表示驅動器的字符串。對於每一個找到的驅動器,Del命令刪除所有以.pst和.tmp擴展名結尾的文件。/s選項要求Del命令搜索當前目錄及其所有子目錄,/q選項要求Del命令以“安靜”模式運行。
三 創建狀態報告
AutoReport.bat利用多個NTFS文件流來跟蹤什麼時候發送狀態報告email。文件流以%ComputerName%-maildate.txt的形式命名,其中%ComputerName%是一個系統定義的環境變量,它的值是用戶當前登錄的機器的名稱。這樣,每一台PC都有一個對應的隱藏流。隱藏流包含了最後為該台機器發送狀態報告的日期,腳本運行時讀取這個信息:如果本月已經發送過狀態報告,則不再發送;如果本月尚未發送狀態報告,則獲取必要的數據,寫入並發送報告,再把當前的日期寫入與該台機器對應的隱藏流。
獲取數據。在獲取狀態數據的過程中,AutoReport.bat腳本用到了多種工具和技術,主要包括:
1 空閒的磁盤空間。腳本通過df工具獲得這方面的信息,df的輸出中包含了每一個驅動器的總容量和空閒空間百分比。
2 病毒定義文件的日期。腳本獲取C:program files common files
etwork associatesvirusscan engine4.0.xxclean.dat文件的最後修改日。由於各台會議室PC上該文件的位置不同,腳本通過幾個If Exist命令確定該文件的正確位置。
3 Messenger服務的狀態。腳本用到了Windows 2K Resource Kit提供的Srvinfo工具。執行Srvinfo時指定-s選項可獲得在各台PC上運行的服務清單。如果Messenger服務正在運行,腳本在狀態報告中寫入警告信息。
寫入並發送狀態報告。腳本把收集到的數據寫入blat.txt文件作為郵件的正文,然後填寫郵件的收件人 發件人 主題,最後發送消息。郵件發送任務由Blat工具完成。Blat是一個能夠在Windows命令行發送郵件的工具,可以從http:// www.interlog.com/~tcharron/blat.html免費下載,它的README文件提供了完善的安裝 語法說明和應用實例。
在blat命令中,%SystemDrive%lat.txt指定了包含郵件內容的文件,其中%SystemDrive%是系統定義的環境變量(表示系統盤位置),-s選項指定了郵件的主題,-server選項指定了發送郵件時使用的SMTP服務器,-f選項指定了發送者的郵件地址,-t選項指定了收件人的郵件地址。為了使腳本代碼更容易維護和閱讀,這裡沒有直接在命令行指定SMTP郵件服務器 發件人地址 收件人地址,而是使用了用戶定義的環境變量,分別是%MailServer% %Sender%和%Recipients%。
記錄當前日期。把狀態報告發送給指定的收件人之後,接下來要做的是把當前日期寫入隱藏流。下次腳本運行時,就可以通過檢查這個日期確定是否發送狀態報告。


copyright © 萬盛學電腦網 all rights reserved