输入以下命令行打开同时启用Namespace和Debug视图的控制台:
AdminConsole。msc /短信:DebugView = 1 /短信:NamespaceView = 1
导航到系统中心配置管理器->站点数据库->计算机管理->集合。
右键单击Collections节点,然后选择ConfigMgr对象属性视图。图3.33显示收集实例的一些WMI属性。
列1中的RelPath属性提供了类名、SMS_Collection和每个实例的名称。您可以使用此信息在WMI对象浏览器的CIM Studio中定位类和实例。这对于那些名称不易被猜测的类特别有用,例如代表许多站点设置的SMS_SIIB_Configuration类。
SMS_Collection实例的MemberClass名称告诉您在哪里可以找到关于集合成员的其他信息。
- 图3.33.
ConfigMgr集合的一些关键属性,如控制台的对象属性视图中所示
这/短信:NamespaceView = 1命令行开关将ConfigMgr命名空间文件夹添加到Console树窗格。在控制台树窗格的ConfigMgr命名空间节点下找到SMS_Collection类。所示图3.34, Namespace视图提供了类属性、方法和限定符的方便显示。
- 图3.34.
ConfigMgr Collections控制台中的Namespace视图显示SMS_Collection类属性、方法和限定符。
您可以使用CIM Studio和WMI对象浏览器进一步研究SMS_Collection类和实例。图3.35和3.36分别显示CIM工作室中的类方法和关联。SMS_Collection类方法允许您使用CREACE CCR方法按CONSECT CCR方法按下CONFIGMMGR客户端按CORMERTREFRESH方法更新收集成员资格。通过CONFIGMGR控制台执行这些操作时,您实际上正在调用SMS_COLLECTION类的方法。
- 图3.35.
CIM工作室中显示的SMS_COLLECTION类的方法选项卡
图3.36.SMS_Collection类关联将集合链接到该集合的子集合、成员和广告。
Smsprov。mof文件包含mof语言,定义根\SMS命名空间和它包含的类。你可以找到Smsprov。Mof文件\<平台“Configuration Manager”安装目录下的“>”文件夹。您还可以直接从控制台导出以下ConfigMgr对象类型实例的MOF定义:
集合
查询
报告
要将对象定义导出到MOF文件,请右键单击“父节点”,选择“导出对象”,然后“完成向导”以选择要导出的实例和文件位置以及输入描述性文本。您可以使用类似的进程从MoF文件导入对象。
本节展示了SMS提供程序如何将Configuration Manager服务器组件和数据库对象公开为wmi管理的对象。“根\ CCM名称空间”、“硬件库存通过WMI”和“Configuration Manager客户端WMI命名空间章节讨论了ConfigMgr客户端如何使用WMI来维护其配置和策略,以及如何收集库存数据。Configuration Manager SDK,您可以从这里下载http://www.microsoft.com/downloads/details.aspx?FamilyID=064A995F-EF13-4200-81AD-E3AF6218EDCC&displaylang=en(或搜索ConfigMgr SDK在http://www.microsoft.com/downloads),提供广泛的文档和示例代码,用于以编程方式管理CONFICMGR管理CONFIGMGR。
组件和通信
Configuration Manager的代码设计基于组件化架构,在这种架构中,相关的任务集由逻辑上不同的可执行代码单元执行,共同工作以实现更高级别的功能。大多数配置管理器代码驻留在bin中的动态链接库(dll)中\<处理器架构“Configuration Manager”安装目录下的“>”文件夹。虽然有几个组件作为SMS Executive服务的线程运行,但有些组件作为单独的服务运行。您可以在站点服务器上安装所有组件,也可以将许多组件分发到其他服务器。
大多数线程组件使用名为收件箱接收来自其他组件的文件。收件箱可以由单个文件夹或文件夹子树组成。组件在其收件箱中维护打开的文件系统更改通知句柄。当一个组件有另一个组件的工作要做时,它会在收件箱中放置一个文件。然后,操作系统将文件更改通知事件返回给拥有收件箱的组件。一些组件还使用内存队列与本地机器上的其他组件进行更快的通信。更重要的是,一些组件维护发件箱文件夹,在这些文件夹中存放要由其他组件处理的文件。另外,许多组件还运行一个看门狗循环,在这个循环中,它们定期醒来执行特定的工作。在早期的SMS版本中,看门狗周期为各种操作引入了延迟,与此不同的是,对时间敏感的处理并不依赖于看门狗周期。
表3.2显示了许多配置管理器组件,其中包含其主函数的描述,他们使用的文件夹与其他组件通信,以及他们维护的日志文件。组件类型列指示组件是否以其自己的进程运行或作为执行服务的线程,以及是否由站点组件管理器监视。安装在Configuration Manager站点系统上的组件将根据分配给服务器的站点角色以及您正在运行的编码器修订而异。
表3.2;组件名称和描述
以下是关于表3.2中描述的一些组件的附加信息:
站点组件管理器还监视站点控制收件箱(sitectrl.box),查看需要在站点系统上添加、删除或更改组件的站点属性的更改。这是除了监控自己的收件箱之外的。
发现数据管理器、库存数据加载器、软件库存处理器和状态系统组件在已签名文件的收件箱\auth文件夹下维护可信的收件箱。
管理点文件分发器将文件从其收件箱(MP发件箱文件夹)传输到其他组件的收件箱。为此,它使用以下组件的收件箱作为发件箱:客户端配置管理器、发现数据管理器、分发管理器、库存处理器、软件计量处理器、状态系统和状态管理器。
维护ConfigMgr站点的核心组件是执行服务、站点组件管理器、站点控制管理器和站点层次结构管理器:
执行服务是运行大多数其他组件的宿主进程。执行服务存在于除了站点数据库服务器之外的每个ConfigMgr站点系统上。
站点组件管理器是一个单独的服务,用于配置和管理其他组件。
站点层次结构管理器和站点控制管理器共同维护站点设置。每个Configuration Manager站点维护一个包含基本配置信息的站点控制文件。站点控制文件是位于站点控制管理器收件箱中的ASCII文本文件。站点控制文件包括父站点、发送方地址、客户端和服务器组件,以及各种其他站点属性。对于子站点,站点控制文件的副本被复制到父站点和层次结构中它上面的所有站点。站点数据库包含当前站点和所有直接和间接子站点的站点控制文件的副本。
不直接编辑站点控制文件-站点控件文件对您网站的运作至关重要。除非要求您被Microsoft支持人员要求这样做,否则请勿尝试编辑站点控件文件。请记住在将它们应用于生产环境之前测试所有修改。
当前站点控制文件Sitectrl。ct0,位于Site Control Manager收件箱中。站点控制管理器维护最多100个站点控制文件版本的历史记录。ConfigMgr收件箱> \ siteStrl.box \历史记录文件夹。以下是显示Configmgr组件的交互的示例;这里,管理员使用Configuration Manager控制台更改为站点属性:
控制台应用程序读取当前站点控件文件,并根据管理员应用的设置计算增量。然后,控制台代码调用SMS_SiteControbolfileWMI对象的CommitSCF方法,以应用Delta站点控制文件中的更改。
SMS提供程序对数据库执行该方法,将更改插入SiteControl表中。
将数据插入SiteControl表中触发SMSDBMON_SITECONTROL_SITECONTROL_ADDUPD_HMAN_INS触发器。这在TableChangeNotifications表中创建了一个新条目。
数据库监视器检测对数据库的更改,并在层次管理器收件箱中创建站点控制更新文件。
层级管理器将站点控制更新文件中的更改合并到临时的.ct1增量站点控制文件中。然后层级管理器将.ct1文件复制到站点控制管理器收件箱中。
Site Control Manager从操作系统接收文件系统更改通知,指示在其收件箱中创建了一个新文件。站点控制管理器唤醒并处理文件。在对旧的站点控制文件应用更改后,站点控制管理器将新站点控制文件复制到三个位置:
主站点控制管理器(sitectl .box)。
sitectrl。盒子历史记录子文件夹(其中它使用适当的顺序版本号重命名)。
sitectrl。盒子外发文件夹(作为一个。ct2文件)。然后站点控制管理器将.ct2文件复制到层次管理器收件箱中。
层次管理器将更改提交到站点数据库。如果站点有父站点,则层次结构管理器还会复制复制管理器收件箱。下面将讨论站点之间的复制。
图3.37显示了这些步骤。
说明对站点属性所做的更改
剩下的大部分组件一起工作,实现特定的特性集。这方面的一个重要例子是与站点间通信相关的组件。
当主站点上的站点控制文件发生更改时,层级管理器启动将该文件复制到需要该文件副本的其他站点的过程。这包括受更改影响的父站点和任何子站点。其他各种组件将对象(如包、广告和查询)复制到子主站点,将数据(如库存和状态消息)复制到父站点。当Configuration Manager组件有数据要复制到另一个站点时,将执行以下步骤:
要将数据复制到另一个站点的组件将文件复制到Replication Manager收件箱中Outbound文件夹的一个子文件夹中。子文件夹被命名为high、normal或low,以表示复制作业的优先级。文件名以路由目的的目标站点代码开头。
Replication Manager将文件压缩到其process文件夹中,并将其移动到其ready文件夹中。然后,Replication Manager在Scheduler收件箱下创建作业文件。
调度程序处理指令文件,并在tosend文件夹(inboxes\schedule.box\tosend)中创建指令文件和打包文件。然后将文件传输给适当的发送者。
发送方将文件复制到目标站点服务器上的SMS_SITE共享。此共享是回收器\接收收件箱。
在目标站点上,Descooler验证源站点服务器的签名,解压缩文件,然后将它们移动到Replication Manager收件箱。
Replication Manager将文件移动到文件要用于的组件的适当收件箱中。复制管理器还将向可能需要的其他站点发起任何复制。
“状态消息和日志这一节将研究这些流程的内部工作原理。
ConfigMgr数据库内部
Configuration Manager站点数据库是一个SQL Server数据库,它包含关于ConfigMgr基础架构和对象、您管理的客户端系统以及其他发现的资源的数据。站点数据库的默认名称是SMS_<网站代码> (<网站代码“>”表示数据库关联的主站点)。尽管ConfigMgr站点数据库中对象的确切数量不同,但通常有几千个对象。管理应用程序(包括Configuration Manager控制台)使用WMI访问数据库。
SQL访问数据库
Microsoft的Configuration Manager开发人员提供了一组广泛的数据库视图,以一致的方式呈现底层数据表。视图摘要覆盖了底层表结构的许多细节,这可能会随未来的产品版本而变化。在某些情况下,CONFIGMGR使用存储过程代替视图以从表中检索数据。Configuration Manager中的报告使用SQL视图。第18章介绍了许多基于SQL视图的报告示例。您可以使用视图来了解数据库的内部结构。下一节呈现了这些视图的子集,并提供有关如何组织和命名的信息。
大多数配置管理器SQL视图对应于ConfigMgr WMI类。在许多情况下,视图还反映了底层的表结构,只有较小的格式更改和更有意义的字段名。
大多数ConfigMgr管理任务不要求您直接使用SQL语句。一个Configuration Manager Component-configmgr报告 - 允许您直接提供访问站点数据库的本机SQL语句。CONFIGMGR控制台还允许您创建和安排SQL数据库维护任务。第21章“备份,恢复和维护”,讨论了数据库维护任务。
使用SQL Server Management Studio
管理SQL Server 2005的主要用户界面是SQL Server Management Studio。执行以下步骤进入Configuration Manager视图。
启动SQL Server Management Studio从Start -> Programs -> Microsoft SQL Server 2005 ->
连接到站点数据库服务器SQL实例后,展开<servername> \ database \ sms_ <网站代码左侧窗格树控件中的>\视图。
查看收藏
“配置管理器服务器上的WMI这一节详细介绍了Collections WMI对象。Collections WMI对象提供了对站点数据库中定义的Configuration Manager集合的属性和方法的访问。SQL视图v_Collections提供了对大部分相同数据的访问。图3.38显示左边窗格中展开的树控件,以显示v_Collections的列定义,而右边的视图在打开视图时显示一些列值。这些列对应于SMS_Collection WMI类属性,其中有许多显示在图3.33和3.34.请注意,MemberClassName列为集合成员提供了视图的名称。这些视图对应于SMS_Collection WMI类的MemberClassName属性中指定的WMI对象。