操作類別和實例資訊
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 編寫腳本。