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 zum Verarbeiten von Abfrageergebnissen implementieren.

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 Management InstrumentationObjects OverviewHow to Call a Configuration Manager Object Class Method by Using WMIHow to Connect to an SMS Provider in Configuration Manager by Using WMIHow to Create a Configuration Manager Object by Using WMI How to Create a Configuration Manager Object by Using WMIHow to Löschen eines Configuration Manager-Objekts mithilfe von WMIHow to Modify a Configuration Manager Object by Using WMIHow to Perform a Synchronous Configuration Manager Query by Using WMIHow to Read a Configuration Manager Object by Using WMIHow to Read Lazy Properties by Using WMIConfiguration Manager Extended WMI Query LanguageConfiguration Manager ResultsetsConfiguration Manager Special QueriesAbout queries