共用方式為


操作類別和實例資訊

WMI 提供各種技術來擷取並操作 WMI 類別和實例資訊,透過使用 Microsoft PowerShell、Visual Basic Scripting Edition(VBScript)和 C++。

下表列出了討論取得和操作 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_ 屬性傳回 SWbemMethodSet 集合,該集合包含 Win32_Process 方法。 方法集的成員是 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 編寫腳本