Guide pratique pour lire des propriétés différées à l’aide de code managé
Pour lire une propriété différée à partir d’un objet Configuration Manager retourné dans une requête, vous obtenez l’instance d’objet, qui récupère toutes les propriétés d’objet différées du fournisseur SMS.
Remarque
Si vous connaissez le chemin d’accès complet à l’objet WMI, un appel à la méthode GetInstance renvoie l’objet WMI ainsi que toutes les propriétés différées. Pour plus d’informations, consultez Guide pratique pour lire un objet Configuration Manager à l’aide de code managé.
Pour plus d’informations, consultez Configuration Manager Propriétés différées.
Pour lire les propriétés différées
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Guide pratique pour se connecter à un fournisseur SMS dans Configuration Manager à l’aide de code managé.
Utilisez l’objet QueryProcessor pour interroger Configuration Manager objets.
Effectuez une itération dans les résultats de la requête.
À l’aide du WqlConnectionManager que vous obtenez à l’étape 1, appelez GetInstance pour obtenir l’objet IResultObject pour chaque objet interrogé à partir duquel vous souhaitez obtenir des propriétés différées.
Exemple
L’exemple de code C# suivant interroge tous les objets SMS_Collection , puis affiche les noms de règle obtenus à partir de la CollectionRules
propriété différée.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code Configuration Manager.
public void ReadLazyProperty(WqlConnectionManager connection)
{
try
{
// Query all collections.
IResultObject collections = connection.QueryProcessor.ExecuteQuery("Select * from SMS_Collection");
foreach (IResultObject collection in collections)
{
// Get the collection object and lazy properties.
collection.Get();
Console.WriteLine(collection["Name"].StringValue);
// Get the rules.
List<IResultObject> rules = collection.GetArrayItems("CollectionRules");
if (rules.Count == 0)
{
Console.WriteLine("No rules");
Console.WriteLine();
continue;
}
foreach (IResultObject rule in rules)
{
// Display rule names.
Console.WriteLine("Rule name: " + rule["RuleName"].StringValue);
}
Console.WriteLine();
}
}
catch (SmsQueryException ex)
{
Console.WriteLine("Failed to get collection. Error: " + ex.Message);
throw;
}
}
Cet exemple de méthode a les paramètres suivants :
Paramètre | Type | Description |
---|---|---|
connection |
- 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 Configuration Manager qui peuvent être levées sont SmsConnectionException et SmsQueryException. Ceux-ci peuvent être regroupés avec SmsException.
Voir aussi
Vue d’ensemble des objetsConfiguration Manager propriétés différées
Comment appeler une méthode de classe d’objet Configuration Manager à l’aide de code managé
Comment se connecter à un fournisseur Configuration Manager à l’aide de code managé
Guide pratique pour créer un objet Configuration Manager à l’aide de code managé
Comment modifier un objet Configuration Manager à l’aide de code managé
Comment effectuer une requête Configuration Manager asynchrone à l’aide de code managé
Comment effectuer une requête de Configuration Manager synchrone à l’aide de code managé
Guide pratique pour lire un objet Configuration Manager à l’aide du code managé