SWbemObject 对象

可以使用 SWbemObject 对象的方法和属性来表示一个 Windows Management Instrumentation (WMI) 类定义或对象实例。 此对象不能由 VBScript CreateObject 调用创建。

此对象支持两种类型的属性和方法。 本部分定义了适用于所有 WMI 对象的泛型属性和方法。 此外,此对象将基础对象的属性和方法公开为 SWbemObject 的动态自动化属性和方法。 这些属性和方法的名称与类型取决于基础 WMI 对象。 有关如何公开这些动态属性和方法的详细信息,请参阅操作类和实例信息

从 WMI 客户端的角度看,此对象始终在进程内。 写入操作只会影响对象的本地副本,读取操作始终从本地副本检索值。 仅当使用 SWbemObject.Put_ 方法调用写入整个对象时,才会执行对 WMI 的更新。 如果你修改 SWbemObject 对象中的属性或方法,在调用 SWbemObject.Put_ 之前,更改不会写入 WMI

本部分定义的泛型方法和属性名称始终以尾部下划线(“_”)结尾,以将其与基础对象的动态 WMI 方法和属性区分开来。

请注意,无法使用 VBScript GetObject 方法创建 SWbemObject。 如果你要创建新的空类,请使用带有空路径参数的 SWbemServices.Get。 此调用返回一个可成为类的空 SWbemObject 对象。 然后,可为 Path_ 调用返回的 SWbemObjectPath 对象的 Class 属性提供类名。 使用 Properties_ 方法向新类添加属性。 若要创建实例,请对新类调用 GetObject

以下代码示例演示如何获取新类并向其添加属性。 必须通过调用 Put_ 将表示类的 SWbemObject 对象写回 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 对象具有以下属性

properties 访问类型 说明
Derivation_
只读
包含用于描述类的派生层次结构的字符串数组。
Methods_
只读
一个 SWbemMethodSet 对象,它是此对象的方法集合
Path_
只读
包含一个 SWbemObjectPath 对象,该对象表示当前类或实例的对象路径。
Properties_
只读
一个 SWbemPropertySet 对象,它是此对象的属性集合
Qualifiers_
只读
一个 SWbemQualifierSet 对象,它是此对象的限定符集合
安全性_
只读
包含用于读取或更改安全设置的 SWbemSecurity 对象

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
Header
Wbemdisp.h
类型库
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

另请参阅

SWbemObjectEx

脚本 API 对象