Partage via


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

  1. 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é.

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

  3. Effectuez une itération dans les résultats de la requête.

  4. À 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é