Cómo leer propiedades diferidas mediante código administrado

Para leer una propiedad diferida de un objeto Configuration Manager devuelto en una consulta, se obtiene la instancia del objeto, que recupera las propiedades de objeto diferidas 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 diferidas. Para obtener más información, vea Cómo leer un objeto Configuration Manager mediante código administrado.

Para obtener más información, vea Configuration Manager Propiedades diferidas.

Para leer propiedades diferidas

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, vea Cómo conectarse a un proveedor de SMS en Configuration Manager mediante código administrado.

  2. Use el objeto QueryProcessor para consultar objetos Configuration Manager.

  3. Recorre en iteración los resultados de la consulta.

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

Ejemplo

En el siguiente ejemplo de código de C# se consultan todos los objetos SMS_Collection y, a continuación, se muestran los nombres de regla obtenidos de la CollectionRules propiedad diferida.

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de 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;  
    }  
}  

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

Parámetro Tipo Descripción
connection - WqlConnectionManager Una conexión válida al 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 excepciones Configuration Manager que se pueden generar son SmsConnectionException y SmsQueryException. Estos se pueden detectar junto con SmsException.

Consulta también

Introducción a los objetosConfiguration Manager Propiedades diferidas
Cómo llamar a un método de clase de objeto Configuration Manager mediante código administrado
Conexión a un proveedor de Configuration Manager mediante código administrado
Creación de un objeto Configuration Manager mediante código administrado
Cómo modificar un objeto Configuration Manager mediante código administrado
Cómo realizar una consulta de Configuration Manager asincrónica mediante código administrado
Cómo realizar una consulta de Configuration Manager sincrónica mediante código administrado
Cómo leer un objeto Configuration Manager mediante código administrado