Freigeben über


Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von WMI

In Configuration Manager führen Sie eine synchrone Abfrage für Configuration Manager Objekte durch, indem Sie die ExecQueryAsync-Methode des SWbemServices-Objekts aufrufen und eine Senkenmethode implementieren, um Abfrageergebnisse zu verarbeiten.

Um jedes zurückgegebene Objekt zu behandeln, erstellen Sie eine ObjWbemSink.OnObjectReady-Ereignisunterroutine . Um benachrichtigt zu werden, wenn die Abfrage abgeschlossen ist, erstellen Sie eine ObjWbemSink.OnCompleted-Ereignisunterroutine .

Hinweis

Verzögerte Eigenschaften werden in asynchronen Abfragen nicht zurückgegeben. Weitere Informationen finden Sie unter Lesen verzögerter Eigenschaften mithilfe von WMI.

So führen Sie eine asynchrone Abfrage aus

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI.

  2. Erstellen Sie eine OnObjectReady-Unterroutine , um Objekte durch die Abfrage zu behandeln.

  3. Erstellen Sie eine OnCompleted-Unterroutine , um die Abfragevervollständigung zu behandeln.

  4. Verwenden Sie das SWbemServices-Objekt, das Sie aus Schritt 1 abrufen, das ExecQueryAsync-Objekt, um Configuration Manager Objekte asynchron abzufragen.

Beispiel

Im folgenden VBScript-Codebeispiel werden alle SMS_Collection Objekte asynchron abfragt.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

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  

Diese Beispielmethode weist die folgenden Parameter auf:

Parameter Typ Beschreibung
connection Swbemservices Eine gültige Verbindung mit dem SMS-Anbieter.

Siehe auch

Windows Windows-Verwaltungsinstrumentation
ObjektübersichtAufrufen einer Configuration Manager-Objektklassenmethode mithilfe von WMI
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI
Erstellen eines Configuration Manager-Objekts mithilfe von WMI
Löschen eines Configuration Manager-Objekts mithilfe von WMI
Ändern eines Configuration Manager-Objekts mithilfe von WMI
Ausführen einer synchronen Configuration Manager Abfrage mithilfe von WMI
Lesen eines Configuration Manager-Objekts mithilfe von WMI
Lesen verzögerter Eigenschaften mithilfe von WMI
Configuration Manager Erweiterte WMI-Abfragesprache
Configuration Manager Resultsets
spezielle Abfragen Configuration Manager
Informationen zu Abfragen