Udostępnij przez


Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu usługi WMI

W Configuration Manager wykonujesz synchroniczne zapytanie dotyczące obiektów Configuration Manager, wywołując metodę ExecQueryAsync obiektu SWbemServices i implementując metodę ujścia do obsługi wyników zapytania.

Aby obsłużyć każdy zwrócony obiekt, utwórz podprogram zdarzenia objWbemSink.OnObjectReady . Aby otrzymać powiadomienie po zakończeniu zapytania, utwórz podprogram zdarzenia objWbemSink.OnCompleted .

Uwaga

Właściwości z opóźnieniem nie są zwracane w zapytaniach asynchronicznych. Aby uzyskać więcej informacji, zobacz Jak odczytywać właściwości z opóźnieniem przy użyciu usługi WMI.

Aby wykonać zapytanie asynchroniczne

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz How to Connect to an SMS Provider in Configuration Manager by Using WMI (Jak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu usługi WMI).

  2. Utwórz podprogram OnObjectReady do obsługi obiektów przez zapytanie.

  3. Utwórz podprogram OnCompleted w celu obsługi uzupełniania zapytań.

  4. Korzystając z obiektu SWbemServices uzyskiwanego w kroku 1, użyj obiektu ExecQueryAsync do wykonywania zapytań Configuration Manager obiektów asynchronicznie.

Przykład

Poniższy przykład kodu VBScript asynchronicznie wykonuje zapytania dotyczące wszystkich obiektów SMS_Collection .

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.

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

Ta przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
connection SWbemServices Prawidłowe połączenie z dostawcą programu SMS.

Zobacz też

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 Using WMI How to Usuwanie obiektu Configuration Manager przy użyciu usługi WMIHow to Modify a Configuration Manager Object by Using WMIHow to Perform a Synchronous Configuration Manager Query by Using WMI How to Read a Configuration Manager (Usuwanie obiektu Configuration Manager przy użyciu usługi WMI How to Modify a Configuration Manager Object by Using WMI How to Read a Configuration Manager Obiekt przy użyciu usługi WMIJak odczytywać właściwości z opóźnieniem przy użyciu usługi WMIConfiguration Manager rozszerzony język zapytań WMIConfiguration Manager zestawy wynikówConfiguration Manager specjalne zapytaniadotyczące zapytań