實現Windows管理的各種技術概述
讓我們來先看看作爲一個系統管理員經常要做的工作:
ü 監視應用程序的運行狀況。
ü 檢測瓶頸或故障。
ü 管理和配置應用程序。
ü 查詢應用程序數據(使用對象關係的遍歷和查詢)。
ü 執行無縫的本地或遠程管理操作。
上面任何一個任務的完成,都需要操作系統提供足夠的有關管理對象的信息。對於一個磁盤來說,他應該知道磁盤空間的使用情況,磁盤的I/O操作等等;對於一個進程監視的管理員來說,他應該瞭解有關進程使用CPU和內存的情況等等。尤其是對那些管理諸如Microsoft SQL Server2000這樣的系統來說,工作尤其複雜。面對如此至多的操作系統或者應用程序的管理對象,信息的收集、篩選、關聯和存儲成了關鍵。可能很多的系統管理員經常使用類似windows管理控制檯來管理系統,收集系統各方面的信息,但是這些信息的收集乃至操作這些管理對象的背後是什麼樣的?windows提供了什麼樣的編程接口來讓程序員自己訪問和操作這些管理對象?這對於編寫系統程序的程序員來說是一個急迫想搞清楚的問題。因爲您有可能想編寫自己的管理控制檯,來監視磁盤的使用情況,並在剩餘空間不足的情況下發出警報;您也有可能在監視系統運行的進程和CPU的使用情況,在CPU資源不足的情況下某些非關鍵的任務而確保關鍵任務的穩定運行。
Microsoft對於上述問題的解決提供了三種基礎的結構方案,分別是windows管理規範WMI (Windows Management Instrumentation), 活動目錄服務接口ADSI (Active Directory Services Interface) 和Windows 腳本宿主 WSH (Windows Script Host),它們都提供了統一的編程接口,使得程序員可以非常方便的訪問和操作諸如Windows NT 4.0 ,Windows 2000和Windows 2003 server系列的企業級操作系統。
Windows 腳本宿主 WSH:Windows 腳本宿主 (WSH) 是用於 Win32 平臺的與語言無關的腳本環境。利用 WSH,Microsoft 提供 VBScript、Jscript 和 JScript .NET 腳本引擎。他提供了簡單,強大而靈活的腳本編寫使得您可以在命令提示行和windows桌面環境下運行.這些腳本語言可用於:Web 服務器的 ASP 頁、運行於 Internet Explorer 中的 HTML 頁、Windows 98 和 Windows 2000 上 Windows 腳本宿主的腳本引擎中。
WSH 可使用任何腳本語言使服務器上的管理任務自動化。例如,管理員可以編寫 VBScript 以創建一個新的虛擬目錄,然後,利用在後臺工作的 WSH,從命令行運行腳本文件,以在 Web 站點上創建新的虛擬目錄。此外,管理員可編寫單個腳本來面向多個 Web 站點或多個物理服務器。
當然在我們這章要講述的使用編程語言的不是WSH,而是.NET平臺上的C#.
Active Directory 服務接口 (ADSI) : Microsoft Windows Active Directory 的編程接口。它允許應用程序使用單個接口與網絡上的不同目錄進行交互。ADSI是一系列的COM編程接口,就如ODBC一樣,ADSI通過對每個目錄協議增加提供者提供通用的目錄訪問.
使用 ADSI,可以創建執行常見管理任務的應用程序,這些任務包括備份數據庫、訪問打印機和管理用戶帳戶等。
使用ADSI 的優點爲:
開放式的架構:使得任何目錄提供者都在一個ADSI接口上執行;
目錄服務的獨立性:由於使用API使得應用程序不需要綁定到特定的提供者目錄服務上;
安全:ADSI支持認證.
Windows管理規範WMI: WMI作爲Windows 2000操作系統的一部分提供了可伸縮的,可擴展的管理架構,提供了一個統一的、基於標準的、可擴展的面向對象編程接口.關於WMI更爲詳細的信息,我們將在接下來的內容中詳細講述.
由於WMI更多的優點以及與.NET平臺的結合,這一章的windows系統的管理將採用WMI在.NET中的命名空間的實現的編程接口system.management來編寫程序.
在本章內容的開始,我將向您講述有關Microsoft® Windows® Management Instrumentation (WMI)即windows管理規範的基本知識和架構以及.NET提供的windows管理規範的接口實現,正是通過使用這些.NET framework中的system.management命名空間提供的類,程序員可以定製自己的管理控制檯;接下來的內容將用5個示例來剖析各種各樣的windows管理工作以及一個簡單的自己應用程序的管理實現。
本章的內容安排如下:
第一節 windows管理規範WMI概述
第二節 .NET 框架中的 WMI 命名空間System.Management
第三節 操作系統類及其管理對象
第四節 管理信息查詢和檢索
第五節 事件預訂和處理
第六節 遠程管理的實現
第七節 管理自己的應用程序