您可以使用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对象,可以成为一个类。然后,您可以为路径_呼叫返回的SWbemObjectPath对象的类属性提供一个类名。通过属性_方法将属性添加到新类。要创建一个实例,请在新类上调用GetObject.
以下代码示例显示了如何获取一个新类并向其添加一个属性。表示该类的SWbemObject对象必须通过调用放_写回WMI存储库。
wbemCimtypeString = 8
设置objSWbemService = GetObject(“Winmgmts:root \\ default”)
设置objClass = objSWbemService.Get()
objClass.Path_.Class =“NewClass”
'添加一个属性
'String属性
objClass.Properties_.add“PropertyName”,wbemCimtypeString
'使物业成为关键财产
objClass.Properties _(“PropertyName”)。Qualifiers_.add“key”,true
'将新类写入存储库中的root \\ default命名空间
设置objClassPath = objClass.Put_
WScript.Echo objClassPath.Path
'使用SWbemObject.SpawnInstance创建一个新类的实例
设置objNewInst = GetObject(_
“Winmgmts:root \\ default:NewClass”)。spawninstance_
objNewInst.PropertyName =“我的实例”
'将实例写入仓库
设置objInstancePath = objNewInst.Put_
WScript.Echo objInstancePath.Path
您可以使用诸如CIM工作室的查看工具来检查存储库,以验证是否显示新的类和实例。有关从存储库中删除类和实例的示例,请参阅SWbemServices.Delete或SWbemObject.Delete_.
方法
SWbemObject对象定义了以下方法。
方法 |
描述 |
Associators_ |
检索对象的关联者。 |
AssociatorsAsync_ |
异步检索对象的关联器。 |
克隆_ |
制作当前对象的副本。 |
CompareTo_ |
测试两个对象的平等。 |
删除_ |
从WMI中删除该对象。 |
DeleteAsync_ |
从WMI异步删除对象。 |
ExecMethod_ |
执行方法提供者导出的方法。 |
ExecMethodAsync_ |
异步执行方法提供者导出的方法。 |
GetObjectText_ |
检索对象的文本表示(MOF语法)。 |
Instances_ |
返回对象的实例集合(它必须是WMI类)。 |
InstancesAsync_ |
异步返回一个对象的实例集合(它必须是一个WMI类)。 |
放_ |
在WMI中创建或更新对象。 |
PutAsync_ |
在WMI中异步创建或更新对象。 |
References_ |
返回对该对象的引用。 |
ReferencesAsync_ |
异步返回对象的引用。 |
SpawnDerivedClass_ |
从当前对象(必须是WMI类)创建一个新的派生类。 |
SpawnInstance_ |
从当前对象创建一个新的实例。 |
Subclasses_ |
返回对象(它必须是WMI类)的子类的集合。 |
SubclassesAsync_ |
异步返回对象的子集合(它必须是WMI类)。 |
属性
SWbemObject对象定义了以下属性。
属性 |
描述 |
Derivation_ |
包含描述类的派生层次结构的字符串数组。 |
方法_ |
一个SWbemMethodSet对象,它是该对象的方法集合。 |
路径_ |
包含表示当前类或实例的对象路径的SWbemObjectPath对象。 |
属性_ |
作为此对象的属性集合的SWbemPropertySet对象。 |
Qualifiers_ |
作为此对象的限定符集合的SWbemQualifierSet对象。 |
安全_ |
包含用于读取或更改安全设置的SWbemSecurity对象。 |
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95 OSR2及更高版本。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
类型库 |
使用Wbemdisp.tlb。 |
DLL |
需要Wbemdisp.dll。 |


