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ń:

Aby wykonać zapytanie asynchroniczne

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. Utwórz obiekt SmsBackgroundWorker i wypełnij właściwości QueryProcessorObjectReady i QueryProcessorCompleted nazwami metod wywołania zwrotnego.

  3. 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