Thursday, April 19, 2012


   In SMS/SCCM, we always hear about sms_def.mof and mof modifications. What really is that? Few days before, I googled on how to edit a .mof file and then found this article by Jeff Gilbert which i added to my bookmark. Hopefully this article will shine a little light on what the sms_def.mof file is and all the wondrous things it can do for you if you aren’t afraid to modify it. Here i reshare it:

   MOF stands for Management Object Format (MOF). The MOF standard defines how text files can be used to represent computer management information, objects that define computer management information, and related structures. SMS uses a file named sms_def.mof to coordinate client hardware inventory information queried from SMS clients. In other words, the sms_def.mof is a text file that tells SMS what computer information you’re looking for when you run a hardware inventory on a client. The file is stored in the \SMS\Inboxes\Clifiles.src\Hinv folder on the SMS site server.

   Out of the box SMS hardware inventory collects a lot of information about your client computers. Because it is really just a text file, you can edit the sms_def.mof using a text file editor like notepad. By reading through it you can see what is being collected and either increase or decrease the amount of information you would like to receive from your clients.

   The sms_def.mof starts with the definition of namespaces, base classes, and providers that are needed by the Hardware Inventory Agent and WMI. The rest of the file defines the classes that the Hardware Inventory Agent can collect data about. Each property and class has an SMS_Report flag. To include a property or class in the hardware inventory just set the report flag to true, to exclude a property or class form the inventory just set the flag to false. Be careful not to enable too much for SMS to inventory every time hardware inventory is run. Each time you modify the sms_def.mof you must first consider the impact on system and network performance.

   If the standard sms_def.mof doesn’t meet your reporting needs, you can also extend the SMS hardware inventory by defining additional classes for WMI to collect by adding new classes to the sms_def.mof file. Extending the sms_def.mof beyond the standard sms_def.mof shipped with SMS is beyond the scope of this article.

   Advanced Clients download new hardware inventory rules when Advanced Client policy is refreshed. By default, this is once per hour. Legacy Clients download new hardware inventory rules when their client refresh cycle is run. By default, this is once every 25 hours. When the clients have the new hardware inventory rules, the next hardware inventory is collected according to the modified sms_def.mof file, as long as it is syntactically correct. Otherwise, the previous version of sms_def.mof is used.

   So now you know the mystery of the sms_def.mof file everyone is always talking about. Once you’re comfortable modifying the standard sms_def.mof file, maybe even adding additional classes to inventory, you’ll be ready to tackle any reporting request your boss can throw at you— until then just tell them that you’re currently exploring the possibility of extending the WMI CIMv2\SMS namespace to include the Win32_LogEvent and evaluating the possible network and system performance impact that will cause...that usually sends them packing for a while.

For more information about the sms_def.mof file and how to modify it see the links below:
Customizing with MOF Files from the SMS 2003 Operations Guide:
For detailed information on “everything .mof” see Michael Schultz’s, MOF Editing Guide at:

1 comment:

  1. Wow that was odd. I just wrote an extremely
    long comment but after I clicked submit my comment
    didn't appear. Grrrr... well I'm not writing all that over
    again. Regardless, just wanted to say fantastic blog!
    Also see my site > Luftentfeuchter preise