操作類別和實例資訊
WMI 提供各種技術,可使用 Microsoft PowerShell、Visual Basic Scripting Edition (VBScript) 和 C++ 來擷取及操作 WMI 類別和實例資訊。
下表列出討論擷取及操作 WMI 類別和實例資訊之技術的主題。
主題 | 描述 |
---|---|
擷取 WMI 類別或實例資料 | 從 WMI 資訊存放庫擷取和設定資料。 |
修改實例屬性 | 擷取實例之後,請變更實例中的資訊。 |
變更實例的繼承 | 變更 實例的父類別。 |
修改方法 | 修改 實例的參數。 |
列舉 WMI | 列舉 WMI 物件。 |
查詢 WMI | 查詢 WMI 物件。 |
呼叫方法 | 使用 Microsoft 或其他協力廠商開發人員建立的相關聯方法,進一步操作 WMI 物件,否則會直接影響 WMI 物件所代表的物件。 |
存取集合 | 列舉腳本中的集合。 |
使用 VBScript 運算元據
您可以使用直接存取,直接存取 SWbemObject上 WMI 類別或實例的 WMI 屬性,而不是透過該物件的屬性 集合 。 您也可以使用程式設計語言的原生樣式在該物件上執行方法,而不是使用 SWbemServices.ExecMethod 呼叫。 例如,Win32_Process中的Create方法在 Windows 2000 中有三個參數,但在 Windows Server 2003 中有四個參數。
您可以使用直接存取,將 WMI 屬性和方法視為 SWbemObject的自動化屬性和方法。
下列範例示範如何存取屬性。
VolumeName = MyDisk.Properties_("VolumeName")
下列範例顯示當您具有直接存取權時,如何存取屬性。
VolumeName = MyDisk.VolumeName
也可以接受物件的鏈結。
下列範例示範如何存取內嵌在另一個 物件中的 物件屬性。
value = MyComputer.MyDisk.VolumeName
下列範例示範如何使用陣列下標標記法來存取屬性。
valueOfElement = MyDisk.MyArrayProperty(3)
下列 VBScript 程式碼範例示範如何將輸入參數的實例繁衍至Win32_Process類別中的Create方法作為SWbemObject、填入輸入屬性,然後使用SWbemServices.ExecMethod執行Create方法。
SWbemObject.Methods_屬性會傳回Win32_Process方法的SWbemMethodSet集合。 方法集的成員是 SWbemMethod 物件, 而 SWbemMethod.InParameters 會傳回 Create 方法的輸入參數。 必要的 CommandLine 輸入參數會設定為 「calc.exe」。 然後 SWbemServices.ExecMethod會執行 方法,進而啟動calc.exe進程。
set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid
下列程式碼範例示範如何使用直接存取來執行先前的作業。
set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid
如需詳細資訊,請參閱使用 SWbemObject呼叫提供者方法和腳本。