Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
QueryProcessObjectReady. Ce gestionnaire d’événements est appelé pour chaque objet renvoyé par la requête. Le gestionnaire d’événements fournit un objet IResultObject qui représente l’objet.
QueryProcessCompleted. Ce gestionnaire d’événements est appelé lorsque la requête est terminée. Il fournit également des informations sur les erreurs qui se produisent. Pour plus d’informations, voir Pour plus d’informations sur la gestion des erreurs, voir Comment gérer les erreurs asynchrones de Configuration Manager à l’aide de code managé.
Le deuxième paramètre de la méthode ProcessQuery est l’instruction WQL de la requête.
Pour exécuter une requête asynchrone
Établissez une connexion au fournisseur SMS. Pour plus d’informations, consultez Principes de base du fournisseur SMS.
Créez l’objet SmsBackgroundWorker et remplissez les propriétés QueryProcessorObjectReady et QueryProcessorCompleted avec les noms des méthodes de rappel.
À 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