Procédure pour exécuter une requête Configuration Manager asynchrone à l’aide de code managé

Dans le Configuration Manager, pour effectuer une requête asynchrone à l’aide du fournisseur SMS géré, vous utilisez la méthode ProcessQuery.

Le premier paramètre de la méthode ProcessQuery est une instance de la classe SmsBackgroundWorker qui fournit deux gestionnaires d’événements :

Pour exécuter une requête asynchrone

  1. Établissez une connexion au fournisseur SMS. Pour plus d’informations, consultez Principes de base du fournisseur SMS.

  2. Créez l’objet SmsBackgroundWorker et remplissez les propriétés QueryProcessorObjectReady et QueryProcessorCompleted avec les noms des méthodes de rappel.

  3. À partir de l’objet WqlConnectionManager que vous obtenez à la première étape, appelez l’objet QueryProcessor méthode ProcessQuery pour démarrer la requête asynchrone.

Exemple

L’exemple suivant s’applique à tous les objets SMS_Collection disponibles et dans le gestionnaire d’événements, l’exemple écrit plusieurs propriétés de collection dans la console Configuration Manager.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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...");
}

Cet exemple de méthode contient les paramètres suivants :

Paramètre Type Description
connection Géré : WqlConnectionManager Connexion valide au fournisseur SMS.

Compilation du code

Espaces de noms

Système

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Programmation robuste

Les exceptions du Configuration Manager qui peuvent être levées sont SmsConnectionException et SmsQueryException. Ceux-ci peuvent être interceptés avec SmsException.

Voir aussi

Vue d’ensemble des objetsPropriétés différées de Configuration ManagerConfiguration ManagerComment appeler une méthode de classe d’objet Configuration Manager à l’aide de code managéProcédure pour se connecter à un fournisseur de Configuration Manager à l’aide de code managéComment créer un Objet Configuration Manager à l’aide de code managéProcédure pour modifier un objet Configuration Manager à l’aide de code managéProcédure pour exécuter une requête Configuration Manager synchrone à l’aide de code managéProcédure pour lire un Configuration Manager l’objet en utilisant du code managéProcédure pour lire les propriétés différées à l’aide de code managéProcédure pour effectuer une requête Configuration Manager synchrone à l’aide de code managéConfiguration Manager langage de requête WMI étenduConfiguration Manager jeuxde résultatsRequêtes spéciales du Configuration ManagerÀ propos des requêtes