SWbemObject object

You can use the methods and properties of the SWbemObject object to represent one Windows Management Instrumentation (WMI) class definition or object instance. This object cannot be created by the VBScript CreateObject call.

This object supports two types of properties and methods. Those defined in this section are generic properties and methods that apply to all WMI objects. In addition, this object exposes the properties and methods of the underlying object as dynamic automation properties and methods of SWbemObject. The names and types of these properties and methods depend on the underlying WMI object. For more information about how these dynamic properties and methods are exposed, see Manipulating Class and Instance Information.

From the WMI client perspective, this object is always in-process. Write operations only affect the local copy of the object, and read operations always retrieve values from the local copy. Updates to WMI are performed only when entire objects are written using a call to the SWbemObject.Put_ method. If you modify the properties or methods in an SWbemObject object, your changes are not written to WMI until you call SWbemObject.Put_.

The generic method and property names defined in this section always end with a trailing underscore ("_") to differentiate them from the dynamic WMI methods and properties of the underlying object.

Note that SWbemObject cannot be created using the VBScript GetObject.method. If you want to create a new, empty class use SWbemServices.Get with an empty path parameter. This call returns an empty SWbemObject object that can become a class. You can then supply a class name for the Class property of the SWbemObjectPath object returned by the Path_ call. Add properties to the new class by the Properties_ method. To create an instance, call GetObject on the new class.

The following code example shows how to obtain a new class and add a property to it. The SWbemObject object that represents the class must be written back to the WMI repository by a call to Put_.

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( _

objNewInst.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
WScript.Echo objInstancePath.Path

You can examine the repository with a viewing tool such as CIM Studio to verify that the new class and instance appear. For an example of removing a class and instance from the repository, see SWbemServices.Delete or SWbemObject.Delete_.


The SWbemObject object has these types of members:


The SWbemObject object has these methods.

Method Description
Associators_ Retrieves the associators of the object.
AssociatorsAsync_ Asynchronously retrieves the associators of the object.
Clone_ Makes a copy of the current object.
CompareTo_ Tests two objects for equality.
Delete_ Deletes the object from WMI.
DeleteAsync_ Asynchronously deletes the object from WMI.
ExecMethod_ Executes a method exported by a method provider.
ExecMethodAsync_ Asynchronously executes a method exported by a method provider.
GetObjectText_ Retrieves the textual representation of the object (MOF syntax).
Instances_ Returns a collection of instances of the object (which must be a WMI class).
InstancesAsync_ Asynchronously returns a collection of instances of the object (which must be a WMI class).
Put_ Creates or updates the object in WMI.
PutAsync_ Asynchronously creates or updates the object in WMI.
References_ Returns references to the object.
ReferencesAsync_ Asynchronously returns references to the object.
SpawnDerivedClass_ Creates a new derived class from the current object (which must be a WMI class).
SpawnInstance_ Creates a new instance from the current object.
Subclasses_ Returns a collection of subclasses of the object (which must be a WMI class).
SubclassesAsync_ Asynchronously returns a collection of subclasses of the object (which must be a WMI class).


The SWbemObject object has these properties.

Property Access type Description
Contains an array of strings that describes the derivation hierarchy for the class.
An SWbemMethodSet object that is the collection of methods for this object.
Contains an SWbemObjectPath object that represents the object path of the current class or instance.
An SWbemPropertySet object that is the collection of properties for this object.
An SWbemQualifierSet object that is the collection of qualifiers for this object.
Contains an SWbemSecurity object used to read or change the security settings.


The List All the Properties and Methods for a WMI Class VBScript code sample on TechNet Gallery uses the SWbemObject to list all of the methods and properties for a specified WMI class.


Requirement Value
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Type library

See also


Scripting API Objects