Delen via


Een Asynchrone Configuration Manager-query uitvoeren met behulp van WMI

In Configuration Manager voert u een synchrone query uit voor Configuration Manager-objecten door de methode ExecQueryAsync van het SWbemServices-object aan te roepen en door een sink-methode te implementeren om queryresultaten te verwerken.

Als u elk geretourneerd object wilt verwerken, maakt u een subroutine voor de gebeurtenis objWbemSink.OnObjectReady . Als u een melding wilt ontvangen wanneer de query is voltooid, maakt u een subroutine voor de gebeurtenis objWbemSink.OnCompleted .

Opmerking

Luie eigenschappen worden niet geretourneerd in asynchrone query's. Zie Luie eigenschappen lezen met behulp van WMI voor meer informatie.

Een asynchrone query uitvoeren

  1. Een verbinding met de SMS-provider instellen. Zie Verbinding maken met een SMS-provider in Configuration Manager met WMI voor meer informatie.

  2. Maak een OnObjectReady-subroutine om objecten door de query te verwerken.

  3. Maak een OnCompleted-subroutine om het voltooien van query's af te handelen.

  4. Gebruik het object SWbemServices dat u uit stap één ophaalt, gebruik het object ExecQueryAsync om Configuration Manager objecten asynchroon op te vragen.

Voorbeeld

In het volgende VBScript-codevoorbeeld worden asynchroon query's uitgevoerd op alle SMS_Collection objecten.

Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.

Dim bdone  
Sub QueryCollection(connection)  

    Dim sink  
    bdone = False  

    Set sink = WScript.CreateObject("wbemscripting.swbemsink","sink_")  

    ' Query for all collections.  
    connection.ExecQueryAsync sink, "select * from SMS_Collection"  

    ' Wait until all instances are returned.  
    While Not bdone      
        wscript.sleep 1000  
    Wend  
 End Sub     

' The sink subroutine to handle the OnObjectReady   
' event. This is called as each object returns.  
Sub sink_OnObjectReady(collection, octx)  
    WScript.Echo "CollectionID: " + collection.CollectionID  
    WScript.Echo "Name: " + collection.Name  
    Wscript.Echo  
End Sub  

' The sink subroutine to handle the OnCompleted event.  
' This is called when all the objects are returned.   
' The oErr parameter obtains an SWbemLastError object,  
' if available from the provider.  
Sub sink_OnCompleted(HResult, oErr, oCtx)  
    WScript.Echo "All collections returned"  
    bdone = true  
End Sub  

Deze voorbeeldmethode heeft de volgende parameters:

Parameter Type Beschrijving
connection SWbemServices Een geldige verbinding met de SMS-provider.

Zie ook

Windows Management Instrumentation
Overzicht van objectenEen methode voor een Configuration Manager-objectklasse aanroepen met behulp van WMI
Verbinding maken met een SMS-provider in Configuration Manager met behulp van WMI
Een Configuration Manager-object maken met WMI
Een Configuration Manager-object verwijderen met WMI
Een Configuration Manager-object wijzigen met behulp van WMI
Een synchrone Configuration Manager-query uitvoeren met behulp van WMI
Een Configuration Manager-object lezen met behulp van WMI
Luie eigenschappen lezen met behulp van WMI
uitgebreide WMI-querytaal Configuration Manager
Configuration Manager resultatensets
Configuration Manager speciale query's
Over query's