如何读取Configuration Manager站点控件文件嵌入属性列表

在 Configuration Manager 中,通过从资源 PropLists 属性数组获取嵌入对象的 SMS_EmbeddedPropertyList 对象,从站点控件文件资源读取嵌入属性列表。

嵌入的属性列表具有以下可设置的属性。 有关详细信息,请参阅 SMS_EmbeddedPropertyList

说明
PropertyListName 嵌入的属性名称。
字符串值的数组。 每个数组项表示单个属性列表项。

警告

对站点控制文件进行更改可能会对Configuration Manager站点造成无法弥补的损害。

读取站点控件文件嵌入属性列表

  1. 设置与 SMS 提供程序的连接。 有关详细信息,请参阅 SMS 提供程序基础知识

  2. 使用步骤 1 中的连接对象获取站点控制文件资源。 有关详细信息,请参阅关于Configuration Manager站点控制文件

  3. SMS_EmbeddedPropertyList获取所需嵌入属性列表的 。

  4. 使用 SMS_EmbeddedPropertyList 对象 Values 属性数组访问属性列表值。

示例

以下示例方法使用 参数标识propertyListName的嵌入属性列表SMS_EmbeddedPropertyListValues 数组填充提供的 values 参数。 true 如果找到嵌入的属性列表,则返回 ;否则返回 false

若要查看调用这些函数的代码,请参阅如何使用托管代码读取和写入Configuration Manager站点控制文件,或请参阅如何使用 WMI 读取和写入Configuration Manager站点控制文件

有关调用示例代码的信息,请参阅调用Configuration Manager代码片段


Function GetScfEmbeddedPropertyList(resource,  _  
        propertyListName,               _  
        ByRef values)  

    Dim scfPropertyList  

    If IsNull(resource.PropLists) = True Then  
        GetScfPropertyList = False  
        Exit Function  
    End If      

    For each scfPropertyList in resource.PropLists  
       if   scfPropertyList.PropertyListName = propertyListName Then  
            ' Found property list, so return the values array.  
            values = scfPropertyList.Values  
            GetScfEmbeddedPropertyList = True  
            Exit Function  
        End If  
     Next    

     ' Did not find the property list.  
     GetScfEmbeddedPropertyList = False  
End Function  

public bool GetScfEmbeddedPropertyList(  
    IResultObject resource,  
    string propertyListName,  
    out ArrayList values)  
{  
    values = new ArrayList();  
    try  
    {  
        if (resource.EmbeddedPropertyLists.ContainsKey(propertyListName))  
        {  
            values.AddRange(resource.EmbeddedPropertyLists[propertyListName]["Values"].StringArrayValue);  
            return true;  
        }  
    }  
    catch(SmsException e)  
    {  
        Console.WriteLine("Couldn't get the embedded property list: " + e.Message);  
    }  
    return false;  

}  

示例方法具有以下参数:

参数 类型 说明
Resource -管理: IResultObject
- VBScript: SWbemObject
包含嵌入属性的站点控制文件资源。
propertyListName -管理: String
- VBScript: String
要读取的嵌入属性列表。
Values - 托管: String 数组
- VBScript: String 数组
SMS_EmbeddedProperty Values 属性。 字符串值的数组。

编译代码

C# 示例具有以下编译要求:

命名空间

System

System.Collections.Generic

System.Collections

System.Text

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

可靠编程

有关错误处理的详细信息,请参阅关于Configuration Manager错误

.NET Framework 安全性

有关保护Configuration Manager应用程序的详细信息,请参阅Configuration Manager基于角色的管理

另请参阅

关于Configuration Manager站点控制文件
如何使用托管代码读取和写入Configuration Manager站点控制文件
如何使用 WMI 读取和写入Configuration Manager站点控制文件