SWbemRefresher object

The SWbemRefresher object is a container object that can refresh the data for all the objects that are added to it. Single instances and instance enumerators can be added or removed from the container. The set of added objects, each item represented by an SWbemRefreshableItem instance, can be treated as a collection and enumerated. WMI instances from any class can be added to the SWbemRefresher object. Even if the provider for the instance data is not a high-performance provider, the refresher object can still update the data on the Refresh call. If the data is supplied through a high-performance provider and the AutoReconnect property is TRUE, then the SWbemRefresher object attempts to reestablish a broken connection to the data provider. This object can be created by the VBScript CreateObject call.

The refresh operation can be carried out by calling either the SWbemRefresher.Refresh method or the SWbemObjectEx.Refresh_ method.


The SWbemRefresher object has these types of members:


The SWbemRefresher object has these methods.

Method Description
Add Adds a new refreshable object to the collection in the refresher object.
AddEnum Adds a new enumerator to the refresher object.
DeleteAll Removes all items from the collection in the refresher object.
Item Returns a specified refresher item from the collection.
Refresh Updates all the items that are contained in the refresher object.
Remove Removes the refresher item object or object set with a specified index from the refresher.


The SWbemRefresher object has these properties.

Property Access type Description
Indicates whether the refresher automatically reconnects to a remote provider if the connection is broken.
Contains the number of items in the refresher object.


The following example illustrates creating an SWbemRefresher object, using the Add and AddEnum methods to store a single instance and an enumeration instance, the refreshing of the data, and using the Item property to obtain the SWbemRefreshableItem objects.

' Get namespace connections
set objServicesCimv2 = GetObject("winmgmts:root\cimv2")
set objServicesDefault = GetObject("winmgmts:root\default")

' Create a refresher object
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")

' Add a single object (SWbemObjectEx) to the refresher. The "@"
' is used because _CIMOMIdentification is a singleton class- only 
' one instance exists. Note that the
' SWbemRefreshableItem.Object property must 
' be specified or the SWbemRefresher.Refresh call will fail.

set objRefreshableItem1 = objRefresher. _
    Add (objServicesDefault, "__CIMOMIdentification=@").Object

' Add an enumerator (SWbemObjectSet object)
' to the refresher. Note that the
' SWbemRefreshableItem.ObjectSet property
' must be specified or the SWbemRefresher.Refresh call will fail. 
set objRefreshableItem2 = objRefresher. _
    AddEnum (objServicesCimv2, "Win32_Process").ObjectSet

' Display number of items in refresher and update the data.
MsgBox "Number of items in refresher = " & objRefresher.Count

' Iterate through the refresher. SWbemRefreshable
' Item.IsSet checks for whether the item is an enumerator.
for each RefreshableItem in objRefresher
 if RefreshableItem.IsSet then  
    MsgBox "Item with index " & RefreshableItem.Index &_
    " is an enumerator containing "_
    & RefreshableItem.ObjectSet.Count & " processes"
      MsgBox "Item with index " & RefreshableItem.Index _
          & " is a single object containing WMI version "_
          &  objRefreshableItem1.VersionCurrentlyRunning
 end if


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

See also



Scripting API Objects