Como executar uma consulta de Configuration Manager assíncrona usando código gerenciado

Em Configuration Manager, para executar uma consulta assíncrona usando o Provedor de SMS gerenciado, você usa o método ProcessQuery.

O primeiro parâmetro do método ProcessQuery é uma instância da classe SmsBackgroundWorker que fornece dois manipuladores de eventos:

Para executar uma consulta assíncrona

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.

  2. Crie o objeto SmsBackgroundWorker e preencha as propriedades QueryProcessorObjectReady e QueryProcessorCompleted com os nomes do método de retorno de chamada.

  3. No objeto WqlConnectionManager obtido na primeira etapa, chame o método ProcessQuery do objeto QueryProcessor para iniciar a consulta assíncrona.

Exemplo

As consultas de exemplo a seguir para todos os objetos SMS_Collection disponíveis e, no manipulador de eventos, o exemplo grava várias das propriedades da coleção no console Configuration Manager.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

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...");  
}  

Este método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection Gerenciado: WqlConnectionManager Uma conexão válida com o provedor de SMS.

Compilando o código

Namespaces

System

System.Collections.Generic

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

As exceções Configuration Manager que podem ser geradas são SmsConnectionException e SmsQueryException. Elas podem ser capturadas junto com SmsException.

Confira também

Visão geral dos objetosConfiguration Manager Propriedades Preguiçosas
Como chamar um método de classe de objeto Configuration Manager usando código gerenciado
Como se conectar a um provedor de Configuration Manager usando código gerenciado
Como criar um objeto Configuration Manager usando código gerenciado
Como modificar um objeto Configuration Manager usando código gerenciado
Como executar uma consulta de Configuration Manager síncrona usando código gerenciado
Como ler um objeto Configuration Manager usando código gerenciado
Como ler propriedades preguiçosas usando código gerenciado
Como executar uma consulta de Configuration Manager síncrona usando código gerenciado
Configuration Manager Linguagem de Consulta WMI Estendida
conjuntos de resultados Configuration Manager
Configuration Manager consultas especiais
Sobre consultas