Lesen von verzögerten Eigenschaften mithilfe von verwaltetem Code

Um eine Lazy-Eigenschaft aus einem in einer Abfrage zurückgegebenen Konfigurations-Manager-Objekt zu lesen, erhalten Sie die Object-Instance, die alle Lazy-Object-Eigenschaften 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 Konfigurations-Manager-Objekts mithilfe von verwaltetem Code.

Weitere Informationen finden Sie unter Lazy Properties in Konfigurations-Manager.

Lazy Properties lesen

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

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

  3. Durchlaufen Sie die Abfrageergebnisse.

  4. Rufen Sie GetInstance mithilfe des WqlConnectionManager auf, den Sie in Schritt eins abrufen, um das IResultObject-Objekt für jedes abgefragte Objekt abzurufen, von dem Sie Lazy-Eigenschaften abrufen möchten.

Beispiel

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

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Konfigurations-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 hat die folgenden Parameter:

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 Konfigurations-Manager-Ausnahmen, die ausgelöst werden können, sind SmsConnectionException und SmsQueryException. Diese können zusammen mit SmsException abgefangen werden.

Siehe auch

Übersicht über Objekte

Verzögerte Eigenschaften von Konfigurations-Manager

Aufrufen einer Konfigurations-Manager-Objektklassenmethode mithilfe von verwaltetem Code

Herstellen einer Verbindung mit einem Konfigurations-Manager-Anbieter mithilfe von verwaltetem Code

Erstellen eines Konfigurations-Manager-Objekts mithilfe von verwaltetem Code

So ändern Sie ein Konfigurations-Manager-Objekt mithilfe von verwaltetem Code

Ausführen einer asynchronen Konfigurations-Manager-Abfrage mithilfe von verwaltetem Code

Ausführen einer synchronen Konfigurations-Manager-Abfrage mithilfe von verwaltetem Code

Lesen eines Konfigurations-Manager-Objekts mithilfe von verwaltetem Code