Eswar Koneti's Blog

All about Configmgr and its connected objects…….

  • About Author
      View eswar koneti's LinkedIn profile
  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 106 other subscribers

  • Awards


  • FaceBook Updates

  • Catagories

  • Meta

  • Copyright!

    All the blog posts in this website are owned by Eswar Koneti and may not be reused in any mode without prior approval of Eswar Koneti. You may quote one paragraph from the blog posts if you link to the original blog post.
    Happy Reading!

Archive for the 'Inventory' Category

SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Posted by Eswar Koneti on 23rd November 2012

Recently I was looking at Collection http://eskonr.com/2009/08/sccm-collection-report-for-hardware-inventory-not-reported-for-x-days/ to see how many clients have not reported inventory back to sccm since X days and I see quite number of computers did not reported but they do receive applications,patches etc.

you know what would be the impact if Client did not report back inventory back to sccm particularly if you are using Query based Collection using inventory information.

I picked random computer from the collection and check inventoryagent.log to start with. Below is the snippet what I can see.

Note: You might see a different Error from inventoryagent.log which causes the hardware inventory not to be sent to Site.So have a look at log file and see what kind of class is that giving error to add the information.

clip image001 thumb1 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Error Code : Failed to add an instance of class SMS_MIFGROUP to historical Store:80041001

Failed to Addreport() for SMS_MIFGroup to historical Store:80041001

failed to process instance of SMS_MIFGROUP:80040900

What does it mean ? Client failed to read entries and add to report from SMS_MIFGROUP .

This issue is not going to fix with WMI repair or SCCM Client removal and installation and more over it is not issue with WMI.

Then what error is that ?

Some information about SMS_MIFGROUP :

The SMS_MIFGroup class is a client Windows Management Instrumentation (WMI) class, in Configuration Manager, that serves as a dynamic instance provider class allowing WMI reporting of Management Information Format (MIF) files that extend the client inventory.

This class is used by the Inventory Client Agent to enumerate the third-party MIF files at a designated collection directory. For each file, the instance provider parses the file against the MIF syntax, validates the contents against Configuration Manager restrictions, and reports each individual MIF group in a generic form that is usable by the Inventory Client Agent and management point.

The generic instance format is specifically designed to translate consistently and easily between MIF syntax for any number of MIF group definitions and values. This translation is especially important on the management point, where the Inventory Client Agent report is translated back into MIF format for processing at the Configuration Manager site server.

The preferred way to extend client inventory is through WMI instances (static or dynamic). However, this provider allows a migration step for SMS 2.0 MIF files already in use.

The SMS_MIFGroup class is specifically used to expose No Identification MIF files (NOIDMIFs) through WMI in client inventory. NOIDMIFs are used to extend client inventory beyond that requested for specific WMI instances in the site policy (see InventoryDataItem). For example, hardware vendors can supply asset information by using NOIDMIFs.

For more information about Inventory Agent Client WMI Classes http://msdn.microsoft.com/en-us/library/cc143240.aspx

Let’s have a look at WMI what MIFGROUP Contains and why does it says it failed to add instance of Class SMS_MIFGROUP.

Connect to WMI using either CIM Studio or Wbemtest. I prefer to go with Wbemtest.

Open WBEMTEST of problem computer:

image thumb7 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Click on Query and run the query which is failed from the log file (above the error):

SELECT __CLASS, __PATH, __RELPATH, ArchitectureName, ComponentName, MIFGroupVerbatim, MIFClassVerbatim, MIFKeysVerbatim, AttributeKeyValues, MIFAttributesVerbatim, MIFFile, MIFDirectory, MIFFileSize FROM SMS_MIFGroup

clip image003 thumb1 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Result you see below :

clip image004 thumb1 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Open SMS_MIFGROUP=<No Key>

clip image005 thumb1 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Click on Show MOF

image4 thumb SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

You see from above result, AttributeKeyValues has some strange characters for some reason .

So we have identified where the issue but for why this error ? how to fix it ?

You can either modify the MIF/ MOF file for this particular error or Try deleting the SMS_MIFGROUP Class and force Hardware inventory action.

You see this time no errors from inventoryagent.log ,also you can see the results from resource Explorer from sccm console.

How to Delete SMS_MIGGROUP Class?

Connect to wmi of problem computer with right namespace.(this case it is invagt)

image9 thumb SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

Click on Enum classes and select recursive

You see all classes. Select SMS_MIFGROUP and  Delete.

clip image007 thumb1 SCCM 2007 clients Hardware Inventory Issue Failed to process instance Error Code :80040900

You are done J.

You can also do this using VBScript :

ON ERROR RESUME NEXT
Set fso=CreateObject(“scripting.filesystemobject”)
Set objinputfile=fso.OpenTextFile(“Computers.txt”,1,True)
Set objoutputfile=fso.OpenTextFile(“MIFresults.txt”,2,True)
Do While objinputfile.AtEndOfLine <> True
strcomputer=objinputfile.ReadLine
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2″)
If Err.Number <> 0 Then
objoutputfile.WriteLine (strcomputer & ” is not connected”)
Err.Clear
Else
strNamespace = “\Root\CCM\invagt”
strclass = “SMS_MIFGROUP”
Set objSWbemServices = GetObject(“winmgmts:\\” & strComputer & strNamespace)
objSWbemServices.Delete strclass
objoutputfile.WriteLine (“MIF Deleted, ” & strcomputer)
end if

loop
msgbox “Done”

Tags: , , , , , ,
Posted in Inventory, SCCM 2007, Trobleshooting Tips, Troubleshooting Issues | No Comments »

How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

Posted by Eswar Koneti on 28th February 2012

Thought of sharing nice article on client remediation and Inventory posted by Anil K on TechNet blog.

Inventory reports with stale records have been one of the pain areas for Administrators. The poor client health with no auto-remediation and inefficiently configured maintenance tasks are major reasons behind it.

Configuration Manager 2012 is going to be the true friend of IT administrators and managers when it comes to address these challenges. Here I’ll talk about some key strengths of CM 2012 to improve your reporting accuracy when it comes to inventory reports, deployment status reports and other reports.

System Discovery: System Discovery settings now have a new tab with some new options to exclude inactive machines. You can include last logon times and last computer account password update parameters to be checked before a machine is placed into the SCCM database.

To find the option: go to Administration Wunderbar > Overview > Hierarchy Configuration > Discovery Options

2772.discovery options How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

Client Status Settings: After clients have been deployed you need to ensure that these clients remain managed as long as they are part of your environment. Client status settings help you to define evaluation periods for client activity based on which you can flag the client as Active or inactive. Also you can define for how long inactive client data should be retained by configuration manager from this settings box. If client performs any of these actions it will be considered active.

0245.client status settings How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

Here is a TechNet article which talks more about how to monitor client health in CM 2012: http://technet.microsoft.com/en-us/library/gg682128.aspx

Site Maintenance tasks: Site maintenance tasks are still going to help with clearing CM database of inactive, obsolete and old records.

A client will be marked inactive based on client status settings as well as if its marked obsolete. You can setup your site maintenance tasks to timely clear inactive/obsolete and old client records.

5383.Site maintenance How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

0636.site mainenance prop How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

Client Auto remediation: Clients in CM 2012 run a local client health check and attempt auto remediation if needed. The ccmeval.xml file under C:\Windows\CCM defines ideal health state parameters and if anything deviates from this expected state, it is automatically fixed by the process. Additionally a report is also sent to the site server if there is any change in the health state of the client.

If you would like to see logs related to client health evaluation and remediation check inside C:\windows\CCM\Logs for ccmeval.log

 How SCCM 2012 (SCCM) helps to make my Inventory more accurate?

Note: All the screenshots and the topics discussed here are based on SCCM 2012 RC2 and it might change in RTM release.

Tags: , , , , , , , ,
Posted in Inventory, SCCM 2007, SCCM 2012 | No Comments »