WMI出現至今已經二十多年了,但很多人對它并不熟悉。知道它很好很強大,但不知道它從哪里來,怎么工作,使用范圍是什么?現在我跟大家說說我的理解。。。
WMI有一組API。我們不管使用VBScript、PowerShell腳本還是利用C#的來訪問WMI的類庫,都是因為WMI向外暴露的一組API。這些API是在系統安裝WMI模塊的時候安裝的,通過他們我們能夠能拿到我們想要的類。
WMI有一個存儲庫。盡管WMI的多數實例數據都不存儲在WMI中,但是WMI確實有一個存儲庫,用來存放提供程序提供的類信息,或者稱為類的藍圖或者Schema。
WMI有一個Service。WMI總是能夠響應用戶的訪問,那是因為它有一個一直運行的Windows服務,名字叫Winmgmt。停止這個服務,所有對WMI的操作都將沒有反應。
WMI是可擴展的。人人都知道WMI能干很多事情,讀取本機硬盤信息、讀取遠程計算機的用戶信息、讀取域用戶信息等等。基本上,你能想到的獲取或者更改資源的操作,它都能干。可謂吃得少,干得多。它為什么這么能干呢?這基于WMI的可擴展性。WMI對資源的操作,不是它自己實現了什么方法,而完全取決于向它注冊的提供程序。
WMI是管理員日常必備的強大工具之一,是腳本伴侶。當然也可以把一個大型系統建立在WMI以及WMI的提供程序之上。以下給兩個使用WMI的例子:
示例一:
本示例利用VB Script檢查本機的物理內存量:
Set wbemServices = Getobject("winmgmts://" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")
For Each wbemObject In wbemObjectSet
WScript.Echo "Total Physical Memory (kb): " & wbemObject.TotalPhysicalMemory
Next
示例二:
本示例利用PowerShell檢查本機的邏輯硬盤情況:
WMI功能強大,而且一直在發展,但是因為用的人不多,所以一直不溫不火。希望更多的人能夠慧眼識珠,看到的潛力。
|
新聞熱點
疑難解答
圖片精選