Hey, here is Martin again, in this Blogpost I would like to explain, how you can resolve Problems with Hardware Inventory and BADMIF and also Delta Mismatch Errors.
I tested around with some WMI classes, and ended up with Errors in “SMS_INVENTORY_DATA_LOADER”, all of them coming up with Message ID 2700 and text:
Inventory Data Loader failed to read the delta MIF file “D:\Program Files\Microsoft Configuration Manager\inboxes\authdataldr.box\Process\XH1X3RT45.MIF” and will move the file to the BADMIFs directory.
This led me to check, if there are more Information in the dataldr.log, and surprisingly, there were:
Most important Information in this log is, which MIF I should check, and on which line the MIF could not be read through SCCM:
Compilation failed~syntax error on line 30, token ‘,’
Cannot process MIF XH7T9DDUL.MIF, moving it to D:\Program Files\Microsoft Configuration Manager\inboxes\authdataldr.box\BADMIFS\ErrorCode_4\ss753bg7.MIF
I’m then going to open the file ss753bg7.MIF to see, which line produced the error:
So as a said, I tested around, and this WMI Class “WmiMonitorID” was from those testings. So, Problem found, I easily remove this WMI class from the Hardware Inventory, I also deleted it:
After a Machine Policy Update, and another Hardware Inventory Cycle, the Hardware Inventory should be written again to the SCCM Database. In my case, the next Problem was coming up with the Delta Mismatch Errors. I can’t tell you, how this Problem is produced, but I found a way through TechNet Forums, to create a full Hardware inventory which solves the Problem with the Deltas. First, the Error Messages in the System Center 2012 Configuration Manager Console:
Inventory Data Loader failed to process the delta MIF file “XHWPE4KKD.MIF” and has moved it to “D:\Program Files\Microsoft Configuration \Manager\inboxes\authdataldr.box\BADMIFS\DeltaMismatch\kvw1avzj.MIF.”
This message is coming over and over again. To solve this, I simply followed the Description from Torsten in a SCCM TechNet Forum (unfortunately I can’t find the link to this post anymore :(). Open wbemtest.exe as local Administrator on the particular system, in my case, it was the Domain Controller:
Click on connect, and connect to Root\ccm\InvAgt:
Click on “Enum classes” and in this opening Dialog, select “Recursive” and click on OK:
Navigate then to the “InventoryActionStatus” and double click this entry:
You have then opened the Object editor for InventoryActionStatus, simply click on “Instances” to view those:
Select the Instance with ID ending on 000000000000001 and click on delete, to delete this instance:
Close all open Dialogs from wbemtest, and go to your logfile Location of your SCCM Client and open InventoryAgent.log, and then start a Hardware Inventory Cycle or wait until the scheduled cycle is done. You should find the following entry which tells you, that a Full Inventry was created:
Inventory: Version number mismatch; will do a Full report.
Hope this helps 🙂