SWbemObject 对象

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

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

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

本部分中定义的泛型方法和属性名称始终以尾随下划线 (") ,以将其与基础对象的动态 _ 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 对象具有这些方法。

方法 说明
关联器_ 检索 对象的关联器。
关联器Async_ 异步检索 对象的关联器。
克隆_ 创建当前 对象的副本。
CompareTo_ 测试两个对象的相等性。
删除_ 从 WMI 中删除 对象。
DeleteAsync_ 从 WMI 异步删除 对象。
ExecMethod_ 执行方法提供程序导出的方法。
ExecMethodAsync_ 异步执行方法提供程序导出的方法。
GetObjectText_ 检索对象的文本表示形式 (MOF 语法) 。
实例数_ 返回 对象实例的集合 (,这些实例必须是 WMI 类) 。
InstancesAsync_ 异步返回 对象实例的集合 (该集合必须是 WMI 类) 。
把_ 在 WMI 中创建或更新 对象。
PutAsync_ 在 WMI 中异步创建或更新 对象。
参考_ 返回对 对象的引用。
ReferencesAsync_ 异步返回对 对象的引用。
SpawnDerivedClass_ 从当前对象创建一个新的派生类 (该对象必须是 WMI 类) 。
SpawnInstance_ 从当前 对象创建新实例。
对 进行子类化_ 返回对象集合的子类 (,这些子类必须是 WMI 类) 。
子类Async_ 异步返回 对象类的子类 (这些子类必须是 WMI 类) 。

属性

SWbemObject 对象具有这些属性。

属性 访问类型 说明
派生_
只读
包含一个字符串数组,这些字符串描述类的派生层次结构。
方法_
只读
个 SWbemMethodSet 对象,它是此对象的方法集合。
路径_
只读
包含 一个 SWbemObjectPath 对象,该对象表示当前类或实例的对象路径。
属性_
只读
个 SWbemPropertySet 对象,它是此对象的属性集合。
限定 符_
只读
个 SWbemQualifierSet 对象,它是此对象的限定符的集合。
安全性_
只读
包含用于读取或更改安全设置的 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 对象的脚本