Поделиться через


Выполнение асинхронного запроса Configuration Manager с помощью управляемого кода

В Configuration Manager для выполнения асинхронного запроса с помощью управляемого поставщика SMS используется метод ProcessQuery.

Первым параметром метода ProcessQuery является экземпляр класса SmsBackgroundWorker , который предоставляет два обработчика событий:

  • QueryProcessObjectReady. Этот обработчик событий вызывается для каждого объекта, возвращаемого запросом. Обработчик событий предоставляет объект IResultObject, представляющий объект .

  • QueryProcessCompleted. Этот обработчик событий вызывается по завершении запроса. В нем также содержатся сведения о любых возникающих ошибках. Дополнительные сведения см. в статье Сведения об обработке ошибок см. в статье Обработка Configuration Manager асинхронных ошибок с помощью управляемого кода.

    Вторым параметром метода ProcessQuery является инструкция WQL для запроса.

Выполнение асинхронного запроса

  1. Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.

  2. Создайте объект SmsBackgroundWorker и заполните свойства QueryProcessorObjectReady и QueryProcessorCompleted именами методов обратного вызова.

  3. Из объекта WqlConnectionManager, полученного на шаге 1, вызовите метод ProcessQuery объекта QueryProcessor, чтобы запустить асинхронный запрос.

Пример

В следующем примере выполняется запрос для всех доступных объектов SMS_Collection, а в обработчике событий этот пример записывает несколько свойств коллекции в консоль Configuration Manager.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода 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...");
}

Этот пример метода имеет следующие параметры:

Параметр Тип Описание
connection Управляемых: WqlConnectionManager Допустимое подключение к поставщику SMS.

Компиляция программы

Пространства имен

System;

System.Collections.Generic;

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Надежное программирование

Configuration Manager исключения, которые могут быть вызваны: SmsConnectionException и SmsQueryException. Их можно поймать вместе с SmsException.

См. также

Общие сведения об объектахConfiguration Manager Отложенные свойства. Вызов метода класса объектов Configuration Manager с помощью управляемого кода. Подключение к поставщику Configuration Manager с помощью управляемого кода. Создание объекта Configuration Manager объект с помощью управляемого кода. Изменение объекта Configuration Manager с помощью управляемого кода. Выполнение синхронного запроса Configuration Manager с помощью управляемого кода. Чтение Configuration Manager Объект с помощью управляемого кода. Чтение отложенных свойств с помощью управляемого кода. Выполнение синхронного запроса Configuration Manager с помощью управляемого кодаConfiguration Manager расширенный язык запросов WMIConfiguration Manager результирующие наборыConfiguration Manager специальные запросыо запросах