Comment lire les 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 renvoyé dans une requête, vous obtenez l’instance de l’objet, qui récupère les propriétés d’objet différé 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, voir Comment lire un objet Configuration Manager à l’aide de code managé.

Pour plus d’informations, consultez Propriétés différées du Configuration Manager.

Pour lire les propriétés différées

  1. Établissez une connexion au fournisseur SMS. Pour plus d’informations, voir Comment se connecter à un fournisseur SMS dans le Configuration Manager à l’aide du code managé.

  2. Utilisez l’objet QueryProcessor pour interroger des objets Configuration Manager.

  3. Parcourez les résultats de la requête.

  4. À l’aide de WqlConnectionManager que vous avez obtenu à la première étape, 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é lazy .

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code de 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 contient 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 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 objets

Propriétés différées de Configuration Manager

Comment appeler une méthode de classe d’objet Configuration Manager à l’aide de code managé

Comment se connecter à un fournisseur de Configuration Manager à l’aide de code managé

Comment créer un objet Configuration Manager à l’aide de code managé

Comment modifier un objet Configuration Manager à l’aide de code managé

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

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

Comment lire un objet Configuration Manager à l’aide de code managé