Udostępnij przez


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 dowolne 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 pobrać obiekt IResultObject dla każdego obiektu, z który 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

Przestrzenie nazw

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Montaż

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 platformą SmsException.

Zobacz też

Omówienie obiektówConfiguration Manager Właściwości z opóźnieniemJak wywołać metodę klasy obiektów Configuration Manager przy użyciu kodu zarządzanegoJak nawiązać połączenie z dostawcą Configuration Manager przy użyciu kodu zarządzanegoJak utworzyć obiekt Configuration Manager obiektu przy użyciu kodu zarządzanegoJak zmodyfikować obiekt Configuration Manager przy użyciu kodu zarządzanegoJak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanegoJak wykonać synchroniczne Configuration Manager zapytanie przy użyciu kodu zarządzanegoJak odczytać obiekt Configuration Manager przy użyciu kodu zarządzanego