Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
W Configuration Manager, aby wykonać zapytanie asynchroniczne przy użyciu zarządzanego dostawcy programu SMS, należy użyć metody ProcessQuery.
Pierwszym parametrem metody ProcessQuery jest wystąpienie klasy SmsBackgroundWorker , które zapewnia dwa programy obsługi zdarzeń:
QueryProcessObjectReady. Ten program obsługi zdarzeń jest wywoływany dla każdego obiektu zwróconego przez zapytanie. Program obsługi zdarzeń udostępnia obiekt IResultObject reprezentujący obiekt.
QueryProcessCompleted. Ten program obsługi zdarzeń jest wywoływany po zakończeniu zapytania. Zawiera również informacje o wszelkich błędach, które wystąpią. Aby uzyskać więcej informacji, zobacz Aby uzyskać informacje na temat obsługi błędów, zobacz Jak obsługiwać błędy asynchroniczne Configuration Manager przy użyciu kodu zarządzanego.
Drugim parametrem metody ProcessQuery jest instrukcja WQL dla zapytania.
Aby wykonać zapytanie asynchroniczne
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Utwórz obiekt SmsBackgroundWorker i wypełnij właściwości QueryProcessorObjectReady i QueryProcessorCompleted nazwami metod wywołania zwrotnego.
Z obiektu WqlConnectionManager, który uzyskasz w kroku 1, wywołaj metodę ProcessQuery obiektu QueryProcessor, aby uruchomić zapytanie asynchroniczne.
Przykład
Poniższy przykład wykonuje zapytania dotyczące wszystkich dostępnych obiektów SMS_Collection, a w programie obsługi zdarzeń przykład zapisuje kilka właściwości kolekcji w konsoli Configuration Manager.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.
public void QueryCollections(WqlConnectionManager connection)
{
try
{
// Set up the query.
SmsBackgroundWorker bw1 = new SmsBackgroundWorker();
bw1.QueryProcessorObjectReady += new EventHandler<QueryProcessorObjectEventArgs>(bw1_QueryProcessorObjectReady);
bw1.QueryProcessorCompleted += new EventHandler<RunWorkerCompletedEventArgs>(bw1_QueryProcessorCompleted);
// Query for all collections.
connection.QueryProcessor.ProcessQuery(bw1, "select * from SMS_Collection");
// Pause while query runs.
Console.ReadLine();
}
catch (SmsException ex)
{
Console.WriteLine("Failed to start asynchronous query: ", ex.Message);
}
}
void bw1_QueryProcessorObjectReady(object sender, QueryProcessorObjectEventArgs e)
{
try
{
// Get the collection.
IResultObject collection = (IResultObject)e.ResultObject;
//Display properties.
Console.WriteLine(collection["CollectionID"].StringValue);
Console.WriteLine(collection["Name"].StringValue);
Console.WriteLine();
collection.Dispose();
}
catch (SmsQueryException eX)
{
Console.WriteLine("Query Error: " + eX.Message);
}
}
void bw1_QueryProcessorCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Console.WriteLine("Done...");
}
Ta przykładowa metoda ma następujące parametry:
Parametr | Wpisać | Opis |
---|---|---|
connection |
Zarządzane: WqlConnectionManager |
Prawidłowe połączenie z dostawcą programu SMS. |
Kompilowanie kodu
Obszary nazw
System
System.collections.generic
System.componentmodel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Niezawodne programowanie
Wyjątki Configuration Manager, które można zgłaszać, to SmsConnectionException i SmsQueryException. Można je złapać razem z programem SmsException.
Zobacz też
Omówienie obiektówConfiguration Manager Właściwości z opóźnieniem
How to Call a Configuration Manager Object Class Method by Using Managed Code (Jak wywołać metodę klasy obiektów Configuration Manager przy użyciu kodu zarządzanego)
Jak nawiązać połączenie z dostawcą Configuration Manager przy użyciu kodu zarządzanego
Jak utworzyć obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak zmodyfikować obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak wykonać synchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
Jak odczytać obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak odczytywać właściwości z opóźnieniem przy użyciu kodu zarządzanego
Jak wykonać synchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
Configuration Manager rozszerzony język zapytań WMI
zestawy wyników Configuration Manager
Configuration Manager specjalnych zapytań
Informacje o zapytaniach