WMI即
Windows管理規(guī)范,是用戶管理本地和遠程計算機的一種模型。通過它可以訪問、配置、管理和監(jiān)視幾乎所有的
Windows 資源。WMI的語法十分簡單,基本上常見的命名空間、對象等用幾乎一模一樣。它對應(yīng)的是Windows里的WMI服務(wù)(winmgmt)
WMI實際是由兩部分組成:CIM庫和WMI腳本對象庫。在具體使用過程中,我們是通過WMI腳本對象庫去訪問CIM庫,管理托管的資源。也就是說,在我們編寫腳本的過程大致可以分為這么幾步:
1)創(chuàng)建WMI對象腳本庫的指針實例;
2)調(diào)用其實例的方法,連接到CIM庫,并指明需要訪問的資源的邏輯位置;
3)獲得托管資源也就是類的實例的集合;
4)枚舉實例,完成工作
WMI的命名空間共有16個,不過我們常用的只有兩個:
1)root\cimv2 在這個命名空間里包括了絕大多數(shù)與計算機、操作系統(tǒng)相關(guān)聯(lián)的類。
2)root\default 管理注冊表的類
給出兩個實例參考:
在日志報告中記錄測試機器的地址:
Public Function GetIP()
'獲取測試機器的IP
ComputerName="."
Dim objWMIService,colItems,objItem,objAddress
Set ōbjWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objItem in colItems
For Each objAddress in objItem.IPAddress
If objAddress <> "" Then
GetIP = objAddress
Exit Function
End If
Next
Next
End Function
|
如何在判斷進程是否存在:
Function ProcessExist(processName)
For each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process")
If Process.Name = processName Then
ProcessExist = True
Exit Function
End If
Next
ProcessExist = False
End Function