如何使用托管代码读取延迟属性

若要从查询中返回的 Configuration Manager 对象读取惰性属性,请获取对象实例,该实例从 SMS 提供程序检索任何延迟对象属性。

注意

如果知道 WMI 对象的完整路径,则对 GetInstance 方法的调用将返回 WMI 对象以及任何延迟属性。 有关详细信息,请参阅如何使用托管代码读取Configuration Manager对象

有关详细信息,请参阅Configuration Manager延迟属性

读取延迟属性

  1. 设置与 SMS 提供程序的连接。 有关详细信息,请参阅如何使用托管代码连接到 Configuration Manager 中的 SMS 提供程序

  2. 使用 QueryProcessor 对象查询Configuration Manager对象。

  3. 循环访问查询结果。

  4. 使用在步骤 1 中获取的 WqlConnectionManager ,调用 GetInstance 以获取要从中获取延迟属性的每个查询对象的 IResultObject 对象。

示例

以下 C# 代码示例查询所有 SMS_Collection 对象,然后显示从 CollectionRules 惰性属性获取的规则名称。

有关调用示例代码的信息,请参阅调用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;  
    }  
}  

此示例方法具有以下参数:

参数 类型 说明
connection - WqlConnectionManager 与 SMS 提供程序的有效连接。

编译代码

命名空间

System

System.Collections.Generic

System.ComponentModel

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

可靠编程

可以引发Configuration Manager异常是 SmsConnectionExceptionSmsQueryException。 这些可与 SmsException 一起捕获。

另请参阅

对象概述Configuration Manager延迟属性
如何使用托管代码调用 Configuration Manager 对象类方法
如何使用托管代码连接到Configuration Manager提供程序
如何使用托管代码创建Configuration Manager对象
如何使用托管代码修改Configuration Manager对象
如何使用托管代码执行异步Configuration Manager查询
如何使用托管代码执行同步Configuration Manager查询
如何使用托管代码读取Configuration Manager对象