Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
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, consulte Cómo controlar errores asincrónicos de Configuration Manager mediante código administrado.
El segundo parámetro del método ProcessQuery es la instrucción WQL de la consulta.
Para realizar una consulta asincrónica
Configure una conexión al 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 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