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 How to Read Lazy Properties by Using WMI (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ż

Instrumentacja zarządzania systemem Windows
Omówienie obiektówJak wywołać metodę klasy obiektów Configuration Manager przy użyciu usługi WMI
Jak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu usługi WMI
Jak utworzyć obiekt Configuration Manager przy użyciu usługi WMI
Jak usunąć obiekt Configuration Manager przy użyciu usługi WMI
Jak zmodyfikować obiekt Configuration Manager przy użyciu usługi WMI
Jak wykonać synchroniczne zapytanie Configuration Manager przy użyciu usługi WMI
Jak odczytać obiekt Configuration Manager przy użyciu usługi WMI
Jak odczytywać właściwości z opóźnieniem przy użyciu usługi WMI
Configuration Manager rozszerzony język zapytań WMI
zestawy wyników Configuration Manager
Configuration Manager specjalnych zapytań
Informacje o zapytaniach