Freigeben über


Lesen verzögerter Eigenschaften mithilfe von verwaltetem Code

Um eine verzögerte Eigenschaft aus einem Configuration Manager Objekt zu lesen, das in einer Abfrage zurückgegeben wird, erhalten Sie das Objekt instance, das alle verzögerten Objekteigenschaften vom SMS-Anbieter abruft.

Hinweis

Wenn Sie den vollständigen Pfad zum WMI-Objekt kennen, gibt ein Aufruf der GetInstance-Methode das WMI-Objekt zusammen mit allen verzögerten Eigenschaften zurück. Weitere Informationen finden Sie unter Lesen eines Configuration Manager-Objekts mithilfe von verwaltetem Code.

Weitere Informationen finden Sie unter Configuration Manager Verzögerte Eigenschaften.

So lesen Sie verzögerte Eigenschaften

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code.

  2. Verwenden Sie das QueryProcessor-Objekt, um Configuration Manager Objekte abzufragen.

  3. Durchlaufen Sie die Abfrageergebnisse.

  4. Rufen Sie mit dem WqlConnectionManager , den Sie in Schritt 1 abrufen, GetInstance auf, um das IResultObject-Objekt für jedes abgefragte Objekt abzurufen, von dem Sie verzögerte Eigenschaften abrufen möchten.

Beispiel

Das folgende C#-Codebeispiel fragt alle SMS_Collection -Objekte ab und zeigt dann die Regelnamen an, die von der CollectionRules lazy-Eigenschaft abgerufen wurden.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

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;
    }
}

Diese Beispielmethode weist die folgenden Parameter auf:

Parameter Typ Beschreibung
connection - WqlConnectionManager Eine gültige Verbindung mit dem SMS-Anbieter.

Kompilieren des Codes

Namespaces

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuste Programmierung

Die Configuration Manager Ausnahmen, die ausgelöst werden können, sind SmsConnectionException und SmsQueryException. Diese können zusammen mit SmsException abgefangen werden.

Siehe auch

ObjektübersichtConfiguration Manager Verzögerte EigenschaftenAufrufen einer Configuration Manager Objektklassenmethode mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem Configuration Manager Anbieter mithilfe von verwaltetem CodeVorgehensweise: Erstellen einer Configuration Manager-Objekts mithilfe von verwaltetem CodeÄndern eines Configuration Manager-Objekts mithilfe von verwaltetem CodeAusführen einer asynchronen Configuration Manager Abfrage mithilfe von verwaltetem CodeVorgehensweise: Ausführen eines synchronen Objekts Configuration Manager Abfragen mithilfe von verwaltetem CodeHow to Read a Configuration Manager Object by Using Managed Code (Lesen eines Configuration Manager-Objekts mithilfe von verwaltetem Code)