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