WMI入門教程之什么是WMI?
WMI出現(xiàn)至今已經(jīng)二十多年了,但很多人對它并不熟悉。知道它很好很強大,但不知道它從哪里來,怎么工作,使用范圍是什么?現(xiàn)在我跟大家說說我的理解。。。
WMI有一組API。我們不管使用VBScript、PowerShell腳本還是利用C#的來訪問WMI的類庫,都是因為WMI向外暴露的一組API。這些API是在系統(tǒng)安裝WMI模塊的時候安裝的,通過他們我們能夠能拿到我們想要的類。
WMI有一個存儲庫。盡管WMI的多數(shù)實例數(shù)據(jù)都不存儲在WMI中,但是WMI確實有一個存儲庫,用來存放提供程序提供的類信息,或者稱為類的藍(lán)圖或者Schema。
WMI有一個Service。WMI總是能夠響應(yīng)用戶的訪問,那是因為它有一個一直運行的Windows服務(wù),名字叫Winmgmt。停止這個服務(wù),所有對WMI的操作都將沒有反應(yīng)。
WMI是可擴展的。人人都知道WMI能干很多事情,讀取本機硬盤信息、讀取遠(yuǎn)程計算機的用戶信息、讀取域用戶信息等等?;旧?,你能想到的獲取或者更改資源的操作,它都能干。可謂吃得少,干得多。它為什么這么能干呢?這基于WMI的可擴展性。WMI對資源的操作,不是它自己實現(xiàn)了什么方法,而完全取決于向它注冊的提供程序。
WMI是管理員日常必備的強大工具之一,是腳本伴侶。當(dāng)然也可以把一個大型系統(tǒng)建立在WMI以及WMI的提供程序之上。以下給兩個使用WMI的例子:
示例一:
本示例利用VB Script檢查本機的物理內(nèi)存量:
strComputer = "."
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檢查本機的邏輯硬盤情況:
PS C:\Users\v-lukez> Get-WmiObject -Class Win32_LogicalDisk
結(jié)語:
WMI功能強大,而且一直在發(fā)展,但是因為用的人不多,所以一直不溫不火。希望更多的人能夠慧眼識珠,看到的潛力。
相關(guān)文章
PowerShell中調(diào)用.NET對象的靜態(tài)方法、靜態(tài)屬性和類方法、類屬性例子
這篇文章主要介紹了PowerShell中調(diào)用.NET對象的靜態(tài)方法、靜態(tài)屬性和類方法、類屬性例子,即PowerShell中如何使用.NET對象的一些方法,需要的朋友可以參考下2014-08-08Powershell實現(xiàn)獲取電腦序列號功能腳本分享
這篇文章主要介紹了Powershell實現(xiàn)獲取電腦序列號功能腳本分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-03-03Windows Powershell ForEach-Object 循環(huán)
Powershell管道就像流水線,對于數(shù)據(jù)的處理是一個環(huán)節(jié)接著一個環(huán)節(jié),如果你想在某一環(huán)節(jié)對流進來的數(shù)據(jù)逐個細(xì)致化的處理,可是使用ForEach-Object,$_ 代表當(dāng)前的數(shù)據(jù)。2014-10-10Windows Powershell 創(chuàng)建數(shù)組
在日常處理中,除了使用像“數(shù)值類型”和“字符串類型”外,還需要使用能夠包含其他對象的“集合”類型。大多數(shù)常見語言,都提供一些操作集合類型的語法。最基本的集合類型就是數(shù)組類型,它提供了一種下標(biāo)基于0的數(shù)組對象。2014-09-09