使用IDMIF来扩展 hardware inventory

本文介绍如何使用IDMIF文件扩展硬件清单,重点讲解IDMIF与NOIDMIF的区别、IDMIF文件的结构及配置方法,并提供创建自定义硬件类如路由器的具体示例。

上篇 使用NOIDMIF来扩展 hardware inventory已经说明了很多基础知识,这里就不提了。 IDMIF文件的缺省路径在%WinDir%/system32/ccm/inventory/idmifs, 由注册表路径 HKLM/software/microsoft/SMS/Client/Configuration/Client Properties/IDMIF Directory 来控制。 IDMIF适合那些和某个计算机没什么关系的信息的记录,例如router,switch,网络打印机等。

 

 

IDMIF和NOIDMIF在很多方面都一模一样,例如同样的Start component,Start Group,Class,Start Attribute,ID,Key,Type,Value等等。但是也有一些明显的不同和特殊要求。

 

1. IDMIF必须有一个唯一ID和差异头部信息来提供相关信息。 NOIDMIF在被处理时,hinv agent会自动给它提供一个类似的头部信息。

2. IDMIF必须包括一个和架构同名的Group,又称顶级group,这个group至少要包括一个属性。如果顶级group的名称和架构不同名,server端的 data loader 日志 dataldr.log中会报错说没有 top level group,没有合适的key值信息来 insert database。也就是说只创建空表和视图,但是IDMIF中的class,attribute这些信息没有导入 site database.

 

其它:IDMIF的头部信息还可以有其它可选项,用于指定很多信息,但是不是必须的。例如: //AgentID<AgentName>,如果不写这个属性信息,hinv可能会覆盖IDMIF文件存储到site server database中的信息。Agent name使得用户可以独立的创建和修改“system”架构,其它需要修改这个架构的用户应该使用另一个agent名称。他们也可以删除和修改关联到指定agent上的对架构的修改,而不影响其它agent的修改。

 

 

//Architecture<Routers>  

----这个是要新建一个架构类还是修改原有架构类。可以使用原有架构类 System,也可以自定义。
//Uniqueid<1234ABCD-5678-EFGH-9012-34567890ABCD>

---- Uniqueid 可以是任何唯一值。GUID,或者一个字符串都可以。

 


Start Component

          Name = "Router Information"
          Start Group
                    Name = "Router Details info"
                    ID = 1

                    Key = 1
                    Class = "Routers"   -------- 这个Class要和上面的Architecture 这里的名称相同
                               Start Attribute
                                         Name = "RouterName"
                                         ID = 1
                                         Type = String(50)
                                         Storage = Specific
                                         Value = "SHR1"
                               End Attribute
                               Start Attribute
                                         Name = "RouterBrand"
                                         ID = 2
                                         Type = String(50)
                                         Storage = Specific
                                         Value = "Cisco"
                                End Attribute
                                Start Attribute
                                         Name = "RouterModel"
                                         ID = 3
                                         Type = String(50)
                                         Storage = Specific
                                         Value = "2800series"
                                 End Attribute
            End Group
End Component

 

注意,IDMIF文件在被 hinv收集被发送给site server后,会被自动从%WinDir%/system32/ccm/inventory/idmifs 中删除。如果要对已经被inventory的信息进行修改,需要使用到下面提到的 Pragma = "SMS:ADD" , Pragma = "sms:update", Pragma = "sms:delete" 指令。

 

 

可选的头部语句还有:

//FullResync<1> 

---- 用于覆盖整个架构,也就是覆盖原来同名的架构. 或者用下面的 Pragma语句

//ResyncAgent<MyAgent><1>

---- 用于指令agent来重新同步信息来覆盖所有MyAgent部分生成的数据。
//ResyncClass<PrintersName><1>

---- 这是上面说的Agent名称

 

还有一些语句,例如 Pragma = "SMS:ADD" , Pragma = "sms:update", Pragma = "sms:delete" 用来指定对该部分的操作。例如:如果测试时输入错误,导致data loader没有正常导入数据,那么只要在上面的 Class = “Routers” 后这一行添加一行 Pragma = "sms:delete" 即可,下次data loader就会将原来的Class,attribute等信息覆盖。如果删除顶级group, 原有的整个架构都会被删除。

注意,primary site server上hinv agent属性设置中应该勾选 collect IDMIF files. 勾选之后,客户端控制面板选项Action tab中就有了 ID MIF collection cycle。以后也可以用整个来手动触发 IDMIF的处理。

 

然后就是检查客户端 c:/windows/system32/ccm/logs/inventoryAgent.log中是否collect了该IDMIF文件,搜索"file collection..."。 hinv只是收集 IDMIF,然后作为附件发送给site server,它自己并不处理,这个要注意,而且不签名不加密。server端dataldr.log 搜索“CSqlSchema....”, 也就是data loader在SQL server中创建表 Routers 和视图 V_G6_Routers_data (别问我为什么是6而不是5或者7,我也不知道 :-)  ),当然还有 SMS_G_Routers_Routers 这个WMI类。如果log中没有报错,就大功告成。

 

最后一点要注意: 这样创建出来的Router信息,并没有关联到任何计算机,所以它不属于 system resource, 在定义Collection时是看看不到的。只有创建Query时,对象类型中就会多一项:Routers。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值