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.Delete 或 SWbemObject.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 |
|
类型库 |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |