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 对象的脚本