SWbemObject 物件
您可以使用 SWbemObject 物件的方法和屬性 來代表一個 Windows Management Instrumentation (WMI) 類別定義或物件實例。 VBScript CreateObject 呼叫無法建立這個物件。
這個物件支援兩種類型的屬性和方法。 本節中定義的是套用至所有 WMI 物件的泛型屬性和方法。 此外,這個物件會將基礎物件的屬性和方法公開為 SWbemObject 的 動態自動化屬性和方法。 這些屬性和方法的名稱和類型取決於基礎 WMI 物件。 如需如何公開這些動態屬性和方法的詳細資訊,請參閱 操作類別和實例資訊 。
從 WMI 用戶端的觀點來看,此物件一律為處理中。 寫入作業只會影響物件的本機複本,而讀取作業一律會從本機複本擷取值。 只有在使用 對 的呼叫 寫入整個物件時,才會對 WMI 執行更新SWbemObject.Put_ 方法。 如果您在 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.Delete 或 SWbemObject.Delete_ 。
SWbemObject 物件具有下列類型的成員:
SWbemObject 物件具有這些方法。
方法 | 描述 |
---|---|
Associators_ | 擷取 物件的關聯子。 |
AssociatorsAsync_ | 以非同步方式擷取 物件的關聯子。 |
克隆_ | 建立目前 物件的複本。 |
CompareTo_ | 測試兩個 物件是否相等。 |
刪除_ | 從 WMI 刪除物件。 |
DeleteAsync_ | 以非同步方式從 WMI 刪除物件。 |
ExecMethod_ | 執行方法提供者所匯出的方法。 |
ExecMethodAsync_ | 以非同步方式執行方法提供者所匯出的方法。 |
GetObjectText_ | 擷取物件的文字標記法(MOF 語法)。 |
實例_ | 傳回 物件的實例集合(必須是 WMI 類別)。 |
InstancesAsync_ | 以非同步方式傳回 物件的實例集合(這必須是 WMI 類別)。 |
把_ | 在 WMI 中建立或更新 物件。 |
PutAsync_ | 以非同步方式在 WMI 中建立或更新 物件。 |
引用_ | 傳回 物件的參考。 |
ReferencesAsync_ | 以非同步方式傳回物件的參考。 |
SpawnDerivedClass_ | 從目前的 物件建立新的衍生類別(必須是 WMI 類別)。 |
SpawnInstance_ | 從目前的 物件建立新的實例。 |
子_ | 傳回 物件的子類別集合(必須是 WMI 類別)。 |
SubclassesAsync_ | 以非同步方式傳回 物件的子類別集合(這必須是 WMI 類別)。 |
SWbemObject 物件具有這些屬性。
屬性 | 存取類型 | 描述 |
---|---|---|
推導_ |
唯讀 |
包含字串陣列,描述 類別的衍生階層。 |
方法_ |
唯讀 |
SWbemMethodSet 物件,這是這個物件的方法集合。 |
路徑_ |
唯讀 |
包含 代表目前類別或實例之物件路徑的 SWbemObjectPath 物件。 |
性能_ |
唯讀 |
SWbemPropertySet 物件,此物件是這個物件的屬性集合。 |
限定 符_ |
唯讀 |
SWbemQualifierSet 物件,此物件是這個物件的限定詞集合。 |
安全_ |
唯讀 |
包含 用來讀取或變更安全性設定的 SWbemSecurity 物件。 |
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
類型程式庫 |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |