SWbemObject 物件

您可以使用SWbemObject物件的方法和屬性來代表一個Windows Management Instrumentation (WMI) 類別定義或物件實例。 此物件無法由 VBScript CreateObject 呼叫建立。

此物件支援兩種類型的屬性和方法。 本節中定義的是套用至所有 WMI 物件的泛型屬性和方法。 此外,這個物件會將基礎物件的屬性和方法公開為 SWbemObject的動態自動化屬性和方法。 這些屬性和方法的名稱和類型取決於基礎 WMI 物件。 如需如何公開這些動態屬性和方法的詳細資訊,請參閱 操作類別和實例資訊

從 WMI 用戶端的觀點來看,此物件一律為進行中。 寫入作業只會影響物件的本機複本,而讀取作業一律會從本機複本擷取值。 只有在使用呼叫 SWbemObject.Put_ 方法寫入整個物件時,才會執行 WMI 的更新。 如果您在 SWbemObject 物件中修改屬性或方法,則在呼叫 SWbemObject.Put_之前,您的變更不會寫入 WMI。

本節中定義的泛型方法和屬性名稱一律以尾端底線 (「_」) 結尾,以區別它們與基礎物件的動態 WMI 方法和屬性。

請注意,無法使用 VBScript GetObject.method建立SWbemObject。 如果您想要建立新的空類別,請使用 SWbemServices.Get 搭配空路徑參數。 此呼叫會傳回可以成為類別的空白 SWbemObject 物件。 然後,您可以為Path_呼叫所傳回之 SWbemObjectPath物件的Class屬性提供類別名稱。 透過 Properties_ 方法將屬性新增至新類別。 若要建立實例,請在新的類別上呼叫 GetObject

下列程式碼範例示範如何取得新的類別,並將屬性加入其中。 代表 類別的 SWbemObject 物件必須透過呼叫 Put_回 WMI 存放庫。

wbemCimtypeString = 8
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString  
' Make the property a key property 
objClass.Properties_("PropertyName").Qualifiers_.add "key", true

' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
WScript.Echo objClassPath.Path

'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
    "Winmgmts:root\default:NewClass").Spawninstance_

objNewInst.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
WScript.Echo objInstancePath.Path

您可以使用 CIM Studio 之類的檢視工具來檢查存放庫,以確認新的類別和實例是否出現。 如需從存放庫移除類別和實例的範例,請參閱 SWbemServices.DeleteSWbemObject.Delete_

成員

SWbemObject物件具有下列類型的成員:

方法

SWbemObject物件具有這些方法。

方法 描述
Associators_ 擷取 物件的關聯子。
AssociatorsAsync_ 以非同步方式擷取 物件的關聯子。
Clone_ 製作目前 物件的複本。
CompareTo_ 測試兩個物件是否相等。
Delete_ 從 WMI 刪除 物件。
DeleteAsync_ 以非同步方式從 WMI 刪除物件。
ExecMethod_ 執行方法提供者所匯出的方法。
ExecMethodAsync_ 以非同步方式執行方法提供者所匯出的方法。
GetObjectText_ 擷取物件 (MOF 語法) 的文字表示。
Instances_ 傳回物件的實例集合, (必須是 WMI 類別) 。
InstancesAsync_ 以非同步方式傳回物件實例的集合, (必須是 WMI 類別) 。
Put_ 在 WMI 中建立或更新 物件。
PutAsync_ 以非同步方式在 WMI 中建立或更新 物件。
References_ 傳回 物件的參考。
ReferencesAsync_ 以非同步方式傳回物件的參考。
SpawnDerivedClass_ 從目前的 物件 (建立新的衍生類別,該物件必須是 WMI 類別) 。
SpawnInstance_ 從目前的 物件建立新的實例。
Subclasses_ 傳回物件的子類別集合 (必須是 WMI 類別) 。
SubclassesAsync_ 以非同步方式傳回物件的子類別集合, (必須是 WMI 類別) 。

屬性

SWbemObject物件具有這些屬性。

屬性 存取類型 描述
Derivation_
唯讀
包含字串陣列,描述 類別的衍生階層。
Methods_
唯讀
SWbemMethodSet物件,這個物件是這個物件的方法集合。
Path_
唯讀
包含代表目前類別或實例之物件路徑的 SWbemObjectPath 物件。
Properties_
唯讀
SWbemPropertySet物件,這個物件是這個物件的屬性集合。
Qualifiers_
唯讀
SWbemQualifierSet物件,這是這個物件的限定詞集合。
Security_
唯讀
包含用來讀取或變更安全性設定的 SWbemSecurity 物件。

範例

TechNet 資源庫中 WMI 類別 VBScript 程式碼範例 的 [列出所有屬性] 和 [方法 ] 會使用 SWbemObject 列出指定 WMI 類別的所有方法和屬性。

規格需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
標頭
Wbemdisp.h
類型程式庫
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

另請參閱

SWbemObjectEx

編寫 API 物件的腳本