关于Configuration Manager站点控制文件

Configuration Manager 中的站点控件定义特定网站的设置。 每个站点的设置包含在数据库中,在使用脚本语言时,可通过 Windows Management Instrumentation (WMI) 访问,在使用托管语言时通过托管 SMS 提供程序库进行访问。

注意

以前版本的 Configuration Manager 具有一个物理文件,该文件针对称为站点控制文件的网站设置进行处理。 Configuration Manager将站点设置直接存储在站点数据库中;但是,以编程方式配置站点时,几乎没有什么变化。

Configuration Manager 中的站点控制文件是一个 ASCII 文本文件, (Sitectrl.ct0) ,其中包含每个站点的配置。 有两种类型的站点控制文件:

  • 实际站点控制文件 - 站点控制文件的工作副本,存储在Configuration Manager站点数据库和网站控制管理器的收件箱中。

  • 增量站点控制文件 - 包含要处理的拟议站点控制文件更改。

    站点控制文件存储在站点控制管理器收件箱中的每个站点服务器上。

    在主站点上,数据库中有当前站点的站点控制文件的副本。 主站点还具有层次结构中所有较低级别站点(包括辅助站点)的站点控制文件的副本。

    每个子站点将站点控制文件的副本传递到其父站点。 每个父站点在层次结构中为自己及其每个子站点传递站点控制文件的副本。 因此,中央站点的数据库包含层次结构中每个Configuration Manager站点的站点控制文件的副本。

站点控件文件格式

网站控制文件是包含嵌入属性、嵌入属性列表和多字符串列表的资源定义的集合。 以下示例演示了定义客户端组件信息的站点控制文件的一部分。 资源由BEGIN_CLIENT_COMPONENT声明。 嵌入的属性由 PROPERTY 表示,并具有名称和值。 属性列表由 BEGIN_PROPERTY_LIST 部分表示,并列出属性列表名称以及多个属性名称和关联的值。 多字符串列表由BEGIN_CLIENT_REG_MULTI_STRING_LIST表示,并提供字符串值列表。

BEGIN_CLIENT_COMPONENT  
    <SMS Client Base Components>  
    <65537>  
    SITE_KEY_FLAGS <1>  
    PROPERTY <Component Verify Interval><REG_SZ><00011700001000F0><0>  
    PROPERTY <Component Maintenance Interval (minutes)><REG_DWORD><><1500>  
    BEGIN_PROPERTY_LIST  
        <Copy Queue>  
        <(REG_DWORD)Item Lifetime=11520>  
        <(REG_DWORD)Wakeup cycle=1380>  
    END_PROPERTY_LIST  
    BEGIN_CLIENT_REG_MULTI_STRING_LIST  
        <Retry Sequence><Copy Queue>  
        SITE_KEY_FLAGS <1>  
        <15>  
        <30>  
        <60>  
        <360>  
    END_CLIENT_REG_MULTI_STRING_LIST  
END_CLIENT_COMPONENT  

提供程序具有多个 Windows Management Instrumentation (WMI) 类,这些类表示站点控制文件中的资源。 例如,SMS_SCI_Component服务器 WMI 类保存Configuration Manager站点服务器上存储的服务器组件的相关信息。 这些类派生自 SMS_SiteControlItem 服务器 WMI 类。 有关详细信息,请参阅 Configuration Manager站点配置服务器 WMI 类 [参考]

以下示例是 SMS_SCI_ClientConfig 服务器 WMI 类的声明。

Class SMS_SCI_ClientConfig : SMS_SiteControlItem   
{  
     String ClientConfigName;  
     UInt32 FileType;  
     UInt32 Flags;  
     String ItemName;  
     String ItemType;  
     String Platforms[];  
     SMS_EmbeddedPropertyList PropLists[];  
     SMS_EmbeddedProperty Props[];  
     SMS_Client_Reg_MultiString_List RegMultiStringLists[];  
     String SiteCode;  
};  

声明包括嵌入属性、属性列表和多字符串列表声明的声明。

使用以下类访问嵌入的属性、属性列表和多字符串列表:

类型 WMI 类
Embedded 属性 SMS_EmbeddedProperty服务器 WMI 类
嵌入属性列表 SMS_EmbeddedPropertyList服务器 WMI 类 (数组)
多字符串列表 SMS_Client_Reg_MultiString_List服务器 WMI 类 (数组)

本文档包含以下描述嵌入属性的主题:

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

使用站点控制文件

访问站点控制文件的方式因使用的是 WMI 还是托管提供程序而异。

WMI

使用 WMI 时,可以使用 SMS_SiteControlFile 类方法来管理对站点控制文件的更改。 使用你提供的会话上下文信息来管理对站点控制文件的写入。 这用于为多个应用程序启用对站点控制文件的并发写入。 有关详细信息,请参阅 How to Read and Write to the Configuration Manager Site Control File by Using WMI If you only read from the site control file you can query it without setting a session.

托管提供程序

在几乎所有情况下,代码不必锁定或提交对Configuration Manager站点控制文件的更改,因为托管Configuration Manager库会为你处理此问题。 因此,对Configuration Manager站点控制文件进行编程与Configuration Manager对象编程基本相同。 这与通过 WMI 访问Configuration Manager站点控制文件不同,在 WMI 中必须显式获取会话句柄并提交所做的任何更改。

有关详细信息,请参阅如何使用托管代码读取和写入Configuration Manager站点控制文件

另请参阅

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