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

En Configuration Manager, para realizar una consulta asincrónica mediante el proveedor de SMS administrado, debe usar 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 al 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 obtiene 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 colección en la consola Configuration Manager.

Para obtener información sobre cómo llamar al código de ejemplo, consulte 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 siguientes parámetros:

Parámetro Tipo Descripción
connection Administrado: WqlConnectionManager Una conexión válida con el 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 Configuration Manager excepciones que se pueden generar son SmsConnectionException y SmsQueryException. Estos se pueden detectar junto con SmsException.

Consulta también

Información general sobre objetos:Configuration Manager Lazy PropertiesCómo llamar a un método de clase de objetos de Configuration Manager mediante código administradoCómo conectarse a un proveedor de Configuration Manager mediante código administradoCómo crear un Objeto de Configuration Manager mediante código administradoCómo modificar un objeto de Configuration Manager mediante código administradoCómo realizar una consulta sincrónica de Configuration Manager mediante código administradoCómo leer un informe de Configuration Manager objeto mediante código administradoCómo leer propiedades diferidas mediante código administradoCómo realizar una consulta sincrónica de Configuration Manager mediante código administradoLenguaje de consulta de WMI extendido de Configuration Manager:Conjuntosde resultados de Configuration ManagerConsultas especiales de Configuration Manager Acerca delas consultas