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
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).
Utwórz podprogram OnObjectReady do obsługi obiektów przez zapytanie.
Utwórz podprogram OnCompleted w celu obsługi uzupełniania zapytań.
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