Cómo leer propiedades diferidas mediante código administrado

Para leer una propiedad lazy de un objeto de Administrador de configuración devuelto en una consulta, se obtiene la instancia del objeto, que recupera las propiedades del objeto lazy del proveedor de SMS.

Nota:

Si conoce la ruta de acceso completa al objeto WMI, una llamada al método GetInstance devuelve el objeto WMI junto con las propiedades lazy. Para obtener más información, consulta Cómo leer un objeto de Administrador de configuración mediante código administrado.

Para obtener más información, vea Propiedades diferidas de Administrador de configuración.

Leer propiedades diferidas

  1. Configure una conexión al proveedor de SMS. Para obtener más información, consulte Cómo conectarse a un proveedor de SMS en Administrador de configuración mediante código administrado.

  2. Utilice el objeto QueryProcessor para consultar objetos de Administrador de configuración.

  3. Iterar por los resultados de la consulta.

  4. Usando el WqlConnectionManager que obtiene en el paso uno, llame a GetInstance para obtener el objeto IResultObject para cada objeto consultado del que desea obtener propiedades lazy.

Ejemplo

El siguiente ejemplo de código de C# consulta todos los objetos SMS_Collection y, a continuación, muestra los nombres de regla obtenidos de la CollectionRules propiedad lazy.

Para obtener información sobre cómo llamar al código de ejemplo, consulte Llamar a fragmentos de código de Administrador de configuración.

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

Este método de ejemplo tiene los siguientes parámetros:

Parámetro Tipo Descripción
connection WqlConnectionManager Una conexión válida con el proveedor de SMS.

Compilar el código

Espacios de nombres

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Las Administrador de configuración excepciones que se pueden generar son SmsConnectionException y SmsQueryException. Estos se pueden detectar junto con SmsException.

Consulta también

Introducción a objetos

Propiedades diferidas de Administrador de configuración

Cómo llamar a un método de clase de objeto de Administrador de configuración mediante código administrado

Cómo conectarse a un proveedor de Administrador de configuración mediante código administrado

Cómo crear un objeto de Administrador de configuración mediante código administrado

Cómo modificar un objeto de Administrador de configuración mediante código administrado

Cómo realizar una consulta asincrónica de Administrador de configuración mediante código administrado

Cómo realizar una consulta sincrónica de Administrador de configuración mediante código administrado

Cómo leer un objeto de Administrador de configuración mediante código administrado