定義?
WMI(Windows Management Instrumentation,Windows 管理規範)是一項核心的 Windows 管理技術;使用者可以使用 WMI 管理本地和遠端計算機。簡介?
Windows 2K/XP和Windows 98 都支援WMI;如果為NT 4.0和Windows 95加上了 Service Pack 4或更高版本,NWMI
WMI
問題 3:如果 WMI 向外界暴露特定的功能,我如何才能知道?
問題 4:如果 WMI 沒有提供我想要的功能,我應該怎麼辦?
問題 6: 為什麼我的指令碼可以在某個版本的 Windows 上執行,但在另外一個版本的 Windows 上卻不能執行?
Windows 管理規範(Windows Management Instrumentation)是一項核心的 Windows 管理技術;使用者可以使用 WMI 管理本地和遠端計算機。WMI 透過程式設計和指令碼語言為日常管理提供了一條連續一致的途徑。例如,使用者可以:
• 在遠端計算機器上啟動一個程式。
• 設定一個在特定日期和時間執行的程式。
• 遠端啟動計算機。
• 獲得本地或遠端計算機的已安裝程式列表。
• 查詢本地或遠端計算機的 Windows 事件日誌。
WMI 中的“Instrumentation”特指 WMI 可以獲得關於計算機內部狀態的資訊,這與汽車儀表盤獲得並顯示引擎的狀態資訊非常類似。WMI 對磁碟、程式、和其他 Windows 系統物件進行建模,從而實現“指示”功能。這些計算機系統物件採用類來建立模型,例如 Win32_LogicalDisk 或 Win32_Process; 如您所料,Win32_LogicalDisk 類用於建立在計算機上安裝的邏輯磁碟的模型,Win32_Process 類用於建立正在計算機上執行的任何程式的模型。這些類基於一個名為通用資訊模型(Common Information Model,CIM)的可擴充套件架構。CIM 架構是分散式管理任務組(Distributed Management Task Force)的一個公開標準( ).
WMI 的功能還包括事件觸發、遠端呼叫、查詢、檢視、架構的使用者擴充套件、指示等等。
WMI 適用於所有最新版本的 Windows。WMI 附帶在 Windows Me、Windows 2000、Windows XP 和 Windows Server 2003 之中。
對於 Windows 98 和 Windows NT 4.0,可以訪問. 並搜尋“Windows Management Instrumentation (WMI) CORE 1.5 (Windows 95/98/NT 4.0)”。
注意:在 Windows NT 4.0 上安裝並執行 WMI 之前,需要首先安裝 Service Pack 4 或更高版本。
WMI 需要的其他軟體包括:
1. Microsoft? Internet Explorer 5.0 或更高版本。
2. Windows Script Host(WSH)。Windows 2000、Windows XP、Windows Server 2003、和 Windows Me 附帶的 WSH,而不是 Windows NT4 或 Windows 98 附帶的 WSH。您可以從以下地址下載 WSH . WSH 的最新版本—— 包括在 Windows XP 和 Windows Server 2003 之中——是 WSH 5.6。
MSDN 是瞭解 WMI 及其功能的詳細參考資訊的最佳場所;請參考以下地址獲取 WMI 參考資訊:. WMI 參考中包含了關於 WMI 標準安裝中大多數類、物件和 API 的資訊。注意:不屬於作業系統一部分的 WMI 提供者可能會建立既沒有記錄在 MSDN,也沒有記錄在平臺 SDK 中的類。
一旦熟悉了資訊的分類方式,使用者就可以方便地搜尋自己想要的類,並確定自己想要的功能是否存在。 請注意:為了完成一個特定的任務,您可能需要使用多個類。例如,假定您想要獲得一臺計算機的基本系統資訊。 儘管可以使用 Win32_OperatingSystem 類來獲得可用記憶體的相關資訊,但如果同時需要獲得關於計算機可用磁碟的資訊,您必須使用第二個類 Win32_LogicalDisk。請看問題為什麼我的指令碼可以在某個版本的 Windows 上執行,但在另外一個版本的 Windows 上卻不能執行? 想要知道 WMI 可以做什麼、不可以做什麼?
CIM Studio 是一種工具,使用者可以透過它瀏覽 Windows 2000 或更高版本平臺上的 WMI 類。想要進一步瞭解這個工具,以及其中包含的內容(CIM Studio 中包含一系列由 WMITools.exe 安裝的工具),請訪問 並搜尋關鍵字“WMI tools”。您也可以執行微軟不提供支援的 Wbemtest.exe 工具——安裝 WMI 的時候自動被安裝——來瀏覽 WMI 資料。
在 Windows XP 或 Windows Server 2003 上,使用者可以使用以下指令碼搜尋類名中包含特定關鍵字的類。 請將該指令碼儲存為一個名為 Search.vbs 的文字檔案然後執行,並指定想要搜尋的關鍵字。例如,想要搜尋名稱中包含 “service”的類,
請在命令提示行執行以下命令:
cscript search.vbs service |
' Script for finding a class in WMI Repository |
該指令碼只能執行在 Windows XP 或 Server 2003 之上,因為作為 WMI 查詢語言一部分的 LIKE 運算子只能用於這兩個平臺。
使用者遲早會發現 WMI 無法完成有些自己想要的任務或者無法高效地完成。 在這種情況下,您應該首先檢查作業系統提供的其他指令碼技術是否可以提供該功能。 例如,ADSI(Active Directory Service Interfaces)可以幫助使用者管理 Active Directory;CDO(Collaboration Data Objects)提供了在指令碼中傳送電子郵件的功能。如果 Windows 作業系統沒有提供合適的指令碼介面,也許某些第三方的軟體可以提供您所需要的功能。
如果確實沒有這樣的指令碼介面,理論上講您可以編寫一個 WMI 提供者來提供相應的功能。不過,不能用指令碼語言來編寫 WMI;而必需使用 C++ 或 C#。關於這方面的更多資訊,請參閱 MSDN 的“Using WMI”(使用 WMI)部分,其中一些主題介紹瞭如何編寫典型的 WMI 提供者。如果您想要使用 .NET Framework 來編寫提供者,請在 MSDN 庫中搜尋“Managing Applications Using WMI”(使用 WMI 管理應用程式)。
Microsoft Developers Network(MSDN)和 TechNet 都是獲得示例的好地方。以下是一些指向這些站點上的有用資源的連結:
• TechNet 指令碼中心
包含數百個按照技術和管理任務分類的示例指令碼。
.??
• MSDN
.
想要獲得 WMI 指令碼,請搜尋“WMI System Administration scripts”(WMI 系統管理指令碼)。
想要獲得 WMIC(WMI 命令列工具),請訪問:?.
• WMI 軟體開發工具包(SDK)
想要獲得按照類別劃分的問題解決方案,請參閱“Using WMI > WMI Tasks for Scripts and Applications(針對指令碼和應用程式的 WMI 任務)”。?
• Windows 2000 指令碼編寫指南(線上閱讀)
本書的全部內容,其中包含很多 WMI 指令碼示例。
http://www.microsoft.com/resources/documentation/windows/2000/server/scriptguide/en-us/default.mspx?
• TechNet 的“指令碼故事” 欄目
內容包括有關指令碼的初級和中級話題。
?
• MSDN 的“指令碼診所”欄目
更多的高階指令碼話題。
• 新聞組
您可以在位於 Msnews.microsoft.com 新聞伺服器上的以下新聞組中釋出關於 WMI 和 WMI 應用或指令碼的問題:
Microsoft.public.win32.programmer.wmi
Microsoft.public.windowsxp.wmi
Microsoft.public.windows.server.scripting
這個問題通常是由於新版本的 Windows 中引入了一些新的類、屬性、或方法,但較早版本的作業系統沒有包含它們。想要驗證可用性,請在 MSDN 中查詢 WMI 軟體開發工具包(SDK)中每個類的“Requirements”(要求)部分(). 例如,Win32_PingStatus 類的“要求”中指定該類需要 Windows XP 或 Windows Server 2003。所以試圖在 Windows 2000 上訪問 Win32_PingStatus 類的指令碼將會導致“Class not found”(無法找到類)錯誤。
與此類似,一些 WMI 資料提供者,例如 SNMP Provider 要麼在所有作業系統上不可用,要麼不是 WMI 預設安裝的一部分。關於這些提供者的 SDK 主題都包含指向 “About WMI”(關於 WMI )部分的“Operating System Availability of WMI Components”(WMI 元件的作業系統要求)主題的引用。
想要獲得標準 WMI 提供者的列表,請參考“WMI Reference”(WMI 參考)下的“WMI Providers”(WMI 提供者)。
一般情況下,當一個新的提供者被新增到 Windows 的一個新版本中,它的功能在先前版本的 Windows 中不會提供。例如,由 Ping 提供者定義的Win32_PingStatus 類不會在 Windows 2000 中提供。因為這些新的提供者通常利用了 Windows 新版本中的某些功能,但這些功能在較早版本中並不存在。
問題 7:為什麼 WMI 操作返回一個錯誤?
在開始之前,請首先確認錯誤是否的確是一個 WMI 錯誤。WMI 錯誤編號從 8004xxxx 開始(例如 80041001)。您可以查詢 WMI 錯誤編號並返回程式碼,方法是訪問 並搜尋“WMI Return Codes”(WMI 返回程式碼)。如果找不到需要的資訊,請嘗試在 MSDN 中搜尋特定的錯誤編號。
如果在執行指令碼的過程中沒有返回任何錯誤編號,您可以檢視位於 %windir%system32wbemlogs 資料夾的 WMI 日誌檔案。如果很難判斷剛剛執行的指令碼返回的是什麼錯誤,請刪除所有日誌然後重新執行一次。這樣應該可以輕鬆找到與指令碼相關的錯誤。
如果在日誌檔案中找不到錯誤,您也許需要重新設定日誌的記錄等級。要獲得儘可能多的資訊,請將記錄等級設定為“詳細”(verbose)。如果作業系統是 Windows 2000、Windows NT 和 Windows Me/98/95,修改記錄等級之後需要重啟 WMI;對於 Windows XP 和 Windows Server 2003 則無需這樣。關於配置記錄等級的詳細資訊,請訪問
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7868752/viewspace-1056801/,如需轉載,請註明出處,否則將追究法律責任。