ConfigMgr Inventory (软硬件清单)介绍

概述

清单(Inventory)是SMS和SCCM客户使用最多的一个功能之一,包括 硬件清单软件清单硬件清单 主要提供每台计算机的系统信息,如可用磁盘空间、处理器类型和操作系统等。 软件清单 主要收集文件类型、版本等文件的详细信息,还可以在相应的客户端系统收集文件。

清单基础 - Windows 管理规范和sms_def.mof文件

硬件清单功能主要通过查询客户端计算机上的多个数据存储,如注册表和 Windows 管理规范 (WMI) 命名空间类来从客户端计算机收集数据。其中,WMI是Windows的一项核心管理技术,管理员可以通过WMI管理本地和远程计算机。几乎Windows中所有默认提供的软硬件组件都会通过WMI来暴露其内部信息,如硬盘的大小等硬件信息;还包括已经安装了的软件、操作系统等非硬件信息。清单也是通过WMI来实现的。想进一步了解WMI,可以访问(https://technet.microsoft.com/zh-cn/library/ee692772.aspx )。

默认情况下硬件清单客户端代理(hardware Inventory Agent)能够报告100多 种不同 WMI 类的大约 1,500 种常用的硬件属性。这些设置是在主站点服务器上的 SMS_def.mof 文件中指定。在主站点服务器计算机上,导航到 <ConfigMgr安装目录>\inboxes\clifiles.src\hinv 目录,即可打开该站点的sms_def.mof文件。下面摘录其中的一小段(为了可读性,略有精简)

[ SMS_Report (TRUE),

  SMS_Group_Name ("CD-ROM"),

  SMS_Class_ID ("MICROSOFT|CDROM|1.0") ]

class Win32_CDROMDrive : SMS_Class_Template

{

    [SMS_Report (TRUE) ]

        uint16 Availability;

    [SMS_Report (TRUE) ]

        string Caption;

    [SMS_Report (TRUE) ]

        string Description;

    [SMS_Report (TRUE), key ]

        string DeviceID;

    [SMS_Report (TRUE) ]

        string Drive;

    [SMS_Report (TRUE) ]

        string SystemName;

    [SMS_Report (TRUE) ]

        string VolumeName;

[SMS_Report (FALSE) ]

        string VolumeSerialNumber;

};

Sms_def.mof 主要包括两部分信息:

命名空间类定义( Class Schema) : 比如上述片段定义了光驱对应的类Win32_CDROMDrive, 并指出了其包括的属性,比如硬件ID (DeviceID),名称和大小等等信息。

是否收集的信息( SMS Report): 比如,上述片段定义了该光驱信息应该被收集,包括很多属性,但是光驱的序列号不用收集。

关于硬件清单一个常见的误解是,即认为硬件清单只能报告客户计算机的硬件信息,其实不然。SMS和SCCM的硬件清单,更确切的说应该是基于WMI的清单,命名为硬件清单只是因为历史原因并一直沿用下来。如果你打开上述的sms_def.mof文件,可以看到里面还包括了当前系统安装的程序信息(Win32Reg_AddRemovePrograms)等等非硬件信息。

清单收集过程

当在站点配置启用硬件清单收集后,站点服务器将把清单收集信息以策略(Policy)的形式,通过客户端的管理点(Management Point, MP)下发到客户端,客户端清单代理根据收集的客户端清单信息创建清单报表,并将其发送到客户端的管理点。随后,管理点将清单信息转发到站点服务器,将清单信息存储在站点数据库中。

完整清单和增量清单

当硬件清单客户端代理列出客户端系统清单时,返回的第一个清单报表始终是完整清单(Full Sync )。客户端清单代理将把上一次包括的信息存储在客户端WMI的一个存储库中(WMI Repository),这样后续清单报表通过比较和上一次报告的差异,仅包含增量或更改后的清单信息即增量清单(Delta Sync),以节约网络带宽。在站点服务器上,清单按照被接收的顺序进行处理,根据站点服务器上的上一次清单和本次增量信息,合成客户端的完整信息存储到站点数据库中。如果客户端的增量清单报表丢失或顺序混乱,将被站点服务器拒绝,客户端在下一次执行清单操作时,将重新请求完整清单报表(Resync)。

使用软硬件清单

当硬件清单收集从客户端收集上来之后,可以通过下述方法进一步使用(此处仅列出部分可能的用途):

通过资源浏览器查看信息

技术支持

比如,技术支持人员可以查看制定计算机的详细信息,来帮助解决客户机的潜在问题。

及时发现硬件丢失

资源浏览器中还包括硬件的更改历史,据此管理员可以及早发现内存丢失等问题。

通过报表查看进一步信息

如通过硬件-内存目录下的“内存不足的计算机”报表,可以辅助硬件更新采购的决策。

创建集合

您可以通过查询客户端硬件清单信息来构建集合。例如,您可以创建安装了不被允许的软件或者公司没有购买软件许可的软件的计算机的集合。

配置和扩展硬件清单

硬件清单从设计之初就考虑到了可扩展性,允许客户和第三方公司来扩展。

对于常见的软硬件信息,一般都包括在了sms_def.mof文件中,只是某些不常用的信息,默认设置为了不收集(SMS_Report设置成了False),这时候只需要使用记事本软件把对应的SMS_Report更改为True即可。

对于sms_def.mof中也没有的信息,可以首先到网站或者供应商处找到该信息对应的MOF定义,然后加入到sms_def.mof文件中即可。

需要特别注意的是,更改sms_def.mof文件是一件容易出错的事情,同时容易引起问题,最好在测试环境中测试通过了再搬到产品环境中。

如果想了解更多有关SMS_Def.mof文件的信息,和如何扩展硬件清单,可以参阅https://technet.microsoft.com/zh-cn/library/bb680609.aspx

总结

上述简单介绍了产品中的清单功能,包括清单的基本使用,实现的流程和用途,以及如何扩展该功能。在后续的Blog中,我们将进一步介绍在下一代产品SCCM 2012版本中的该功能的改进和增强。

--张川波