Cómo realizar una consulta de Configuration Manager asincrónica mediante código administrado

En Configuration Manager, para realizar una consulta asincrónica mediante el proveedor de SMS administrado, use el método ProcessQuery.

El primer parámetro del método ProcessQuery es una instancia de la clase SmsBackgroundWorker que proporciona dos controladores de eventos:

Para realizar una consulta asincrónica

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.

  2. Cree el objeto SmsBackgroundWorker y rellene las propiedades QueryProcessorObjectReady y QueryProcessorCompleted con los nombres de método de devolución de llamada.

  3. Desde el objeto WqlConnectionManager que obtenga en el paso uno, llame al método ProcessQuery del objeto QueryProcessor para iniciar la consulta asincrónica.

Ejemplo

En el ejemplo siguiente se consultan todos los objetos SMS_Collection disponibles y, en el controlador de eventos, el ejemplo escribe varias de las propiedades de la colección en la consola de Configuration Manager.

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de 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...");  
}  

Este método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
connection Administrado: WqlConnectionManager Una conexión válida al proveedor de SMS.

Compilar el código

Espacios de nombres

System

System.Collections.Generic

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Las excepciones Configuration Manager que se pueden generar son SmsConnectionException y SmsQueryException. Estos se pueden detectar junto con SmsException.

Consulta también

Introducción a los objetosConfiguration Manager Propiedades diferidas
Cómo llamar a un método de clase de objeto Configuration Manager mediante código administrado
Conexión a un proveedor de Configuration Manager mediante código administrado
Creación de un objeto Configuration Manager mediante código administrado
Cómo modificar un objeto Configuration Manager mediante código administrado
Cómo realizar una consulta de Configuration Manager sincrónica mediante código administrado
Cómo leer un objeto Configuration Manager mediante código administrado
Cómo leer propiedades diferidas mediante código administrado
Cómo realizar una consulta de Configuration Manager sincrónica mediante código administrado
Configuration Manager lenguaje de consulta WMI extendido
conjuntos de resultados de Configuration Manager
Configuration Manager consultas especiales
Información de las consultas