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:
QueryProcessObjectReady. Se llama a este controlador de eventos para cada objeto devuelto por la consulta. El controlador de eventos proporciona un objeto IResultObject que representa el objeto .
QueryProcessCompleted. Se llama a este controlador de eventos cuando se completa la consulta. También proporciona información sobre los errores que se producen. Para obtener más información, vea Para obtener información sobre el control de errores, vea Cómo controlar Configuration Manager errores asincrónicos mediante código administrado.
El segundo parámetro para del método ProcessQuery es la instrucción WQL de la consulta.
Para realizar una consulta asincrónica
Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Cree el objeto SmsBackgroundWorker y rellene las propiedades QueryProcessorObjectReady y QueryProcessorCompleted con los nombres de método de devolución de llamada.
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