Så här läser du Lazy-egenskaper med hjälp av hanterad kod

Om du vill läsa en lazy-egenskap från ett Configuration Manager-objekt som returneras i en fråga får du objektinstansen, som hämtar alla lazy-objektegenskaper från SMS-providern.

Obs!

Om du känner till den fullständiga sökvägen till WMI-objektet returnerar ett anrop till GetInstance metoden WMI-objektet tillsammans med eventuella lata egenskaper. Mer information finns i Så här läser du ett Configuration Manager -objekt med hjälp av hanterad kod.

Mer information finns i Configuration Manager Lazy Properties.

Så här läser du lata egenskaper

  1. Konfigurera en anslutning till SMS-leverantören. Mer information finns i Så här ansluter du till en SMS-provider i Configuration Manager med hjälp av hanterad kod.

  2. Använd QueryProcessor-objekt för att fråga Configuration Manager objekt.

  3. Upprepa genom frågeresultaten.

  4. Med hjälp av den WqlConnectionManager som du fick i steg ett anropar du GetInstance för att hämta IResultObject-objektet för varje efterfrågat objekt som du vill hämta lata egenskaper från.

Exempel

Följande C#-kodexempel frågar efter alla SMS_Collection objekt och visar sedan regelnamn som hämtats från lazy egenskapen CollectionRules .

Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.

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

Den här exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
connection WqlConnectionManager En giltig anslutning till SMS-leverantören.

Kompilerar koden

Namnområden

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Montering

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robust programmering

De Configuration Manager undantag som kan uppstå är SmsConnectionException och SmsQueryException. Dessa kan fångas tillsammans med SmsException.

Se även

Översikt över objekt

Configuration Manager Lazy-egenskaper

Så här anropar du en Configuration Manager objektklassmetod med hjälp av hanterad kod

Så här ansluter du till en Configuration Manager -provider med hanterad kod

Så här skapar du ett Configuration Manager objekt med hjälp av hanterad kod

Ändra ett Configuration Manager objekt med hjälp av hanterad kod

Så här utför du en asynkron Configuration Manager fråga med hjälp av hanterad kod

Så här utför du en synkron Configuration Manager fråga med hjälp av hanterad kod

Så här läser du ett Configuration Manager objekt med hjälp av hanterad kod