Jak odczytywać właściwości z opóźnieniem przy użyciu kodu zarządzanego

Aby odczytać właściwość z opóźnieniem z obiektu Configuration Manager zwróconego w zapytaniu, otrzymasz wystąpienie obiektu, które pobiera wszelkie właściwości obiektu z opóźnieniem od dostawcy programu SMS.

Uwaga

Jeśli znasz pełną ścieżkę do obiektu WMI, wywołanie metody GetInstance zwraca obiekt WMI wraz z dowolnymi właściwościami z opóźnieniem. Aby uzyskać więcej informacji, zobacz Jak odczytać obiekt Configuration Manager przy użyciu kodu zarządzanego.

Aby uzyskać więcej informacji, zobacz Configuration Manager Właściwości z opóźnieniem.

Aby odczytać właściwości z opóźnieniem

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz How to Connect to an SMS Provider in Configuration Manager by Using Managed Code (Jak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu kodu zarządzanego).

  2. Użyj obiektu QueryProcessor do wykonywania zapytań Configuration Manager obiektów.

  3. Iteruj wyniki zapytania.

  4. Używając obiektu WqlConnectionManager , który uzyskasz w kroku 1, wywołaj polecenie GetInstance , aby uzyskać obiekt IResultObject dla każdego obiektu, z których chcesz uzyskać właściwości z opóźnieniem.

Przykład

Poniższy przykładowy kod języka C# wykonuje zapytania dotyczące wszystkich obiektów SMS_Collection , a następnie wyświetla nazwy reguł uzyskanych CollectionRules z właściwości lazy.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu 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;  
    }  
}  

Ta przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
connection - WqlConnectionManager Prawidłowe połączenie z dostawcą programu SMS.

Kompilowanie kodu

Obszary nazw

System

System.collections.generic

System.componentmodel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Niezawodne programowanie

Wyjątki Configuration Manager, które można zgłaszać, to SmsConnectionException i SmsQueryException. Można je złapać razem z programem SmsException.

Zobacz też

Omówienie obiektówConfiguration Manager Właściwości z opóźnieniem
How to Call a Configuration Manager Object Class Method by Using Managed Code (Jak wywołać metodę klasy obiektów Configuration Manager przy użyciu kodu zarządzanego)
Jak nawiązać połączenie z dostawcą Configuration Manager przy użyciu kodu zarządzanego
Jak utworzyć obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak zmodyfikować obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
Jak wykonać synchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
Jak odczytać obiekt Configuration Manager przy użyciu kodu zarządzanego