let's have fun and extend configuration manager hardware inventory

During the first meeting of the Basel Powershell UserGroup , I have done a presentation where I demonstrated how we could tattoo our Windows Image during a deployment for reporting purposes using Windows PowerShell.

Once the deployment is done with information tattooed in the Windows image you need to extend the hardware inventory in Configuration Manager in order to be able to run reports on this newly acquired data.

The tattoo has been done using the OSD Tattooer script? You can find all the information on it right here.

Extending the configuration manager Hardware inventory is actually the logical next step after you have tattooed your machines. By writing this post, we get closer to a complete solution on how to report on your custom assets of your environment in ConfigMgr. Until now, we have used the following components to build our custom data reporting methodology:

  1. WMI Module (To “tattoo” the information in WMI repository.  Main base scripting pillar of the OSD tattooer script).
  2. Tattooing of important information in the Windows image during OSD (OSD Tattooer script)
  3. Extend hardware inventory in Configuration Manager 2012 in order to customize your hardware inventory (This current Post).
  4. Create custom reports based on custom extended hardware inventory (Post still to come ;))

2-How to extend configuration manager hardware inventory?

One thing that is nice In System Center 2012 Configuration Manager, you no longer edit the sms_def.mof file as you did in Configuration Manager 2007. Instead, you can enable and disable WMI classes, and add new classes to collect by hardware inventory by using client settings.

I will walk you through the different steps in order to extend configuration manager hardware inventory by enabling and disabling WMI classes, and how to add a new custom WMI class.

Go to Administation –> Client Settings

extend hardware inventory

When you want to extend hardware inventory in configuration manager, there is one very important tip to note; you can ONLY add a custom WMI class to your hardware inventory when you use the default client settings. (Cf: Technet documentation online).

Edit the properties of the default client settings Go to hardware inventory –> Set Classes

extend hardware inventory

Click on Add

extend hardware inventory

Click on connect

extend hardware inventory

Input the ComputerName where you have already applied your WMI changes, and specify the WMI Namespace, and click Connect.

If you have used my OSD Tattooer script, you can leave the WMI NameSpace to the default “root\cimv2”

extend hardware inventory

It will then connect you remotely to your machine and bring you all the hardware inventory classes. Select the appropriate one(s) and click ok.

It is also possible to be granular in your selection, and only choose some specific properties that you would like to report on.

extend hardware inventory

Validate by clicking ok / finish on all the windows left.

This is how you extend configuration manager hardware inventory 🙂

You can force a hardware inventory cycle on a machine. After a while, you will have access to the data in Configuration Manager.

3-How to extended configuration manager hardware inventory? How to verify if the extension worked (server side)

Go to Devices, and right click any device where you have forced an “Hardware inventory” evaluation cycle.

The Hardware Evaluation cycle might take a while to finish. So you will most likley need to be a bit patient before beeing able to see any results.

Right click any machine, and select start –> Ressource Explorer

Under hardware you should see your freshly inventoried WMI class.

configmgr ressource explorer

3-How to extended configuration manager hardware inventory? How to verify if the extension worked (client side)

In order to see if the extend hardware inventory in configuration manager worked locally on a client, you can go to the AgentInventory.log log file, and if you search for you WMI Class name (In my case, it is BPUG) , you should find it somewhere.

extend hardware inventory InventoryAgent.log


By | 2016-10-19T21:00:14+00:00 April 13th, 2015|ConfigMgr, ConfigMgr 2012, PowerShell, WMI, wmi module|5 Comments

About the Author:

Stéphane is a dynamic and passionate Cloud and datacenter Microsoft MVP since. He is the founder of the Basel PowerShell user Group (BPUG), the co-founder of the French Speaking PowerShell UserGroup (FRPSUG), author, blogger, and received the community award "PowerShell Hero" from PowerShell.org. Stéphane has implemented microsoft infrastructure solutions in various countries of Europe and is currently working in Basel / Switzerland. Stéphane help his clients to reduce their global infrastructure costs by implementing Microsft infrastructure solutions by combining great products such as System Center, Windows Server, with heavy automation using Windows PowerShell. Stéphane loves languages, Belgium beer, French cheese and French Wine. If any of these topics are of your interest, don't hesitate to come and say hi.


  1. Chris Holloway May 15, 2019 at 9:01 pm - Reply

    Bonjour Stephane. I have been deploying several custom classes and then using PowerBI for reporting with great success. However, on one of my classes I had need to add an additional value. After updating my script that creates the WMI table I find that the devices have added this new value on their tables no problem. Where I run into issue is in getting hardware inventory to not ignore the new value. As far as I can tell, I have to delete the class and re-add it for hardware inventory to import the new value. But in doing so, SCCM warns that it will drop the table entirely. My reports cannot tolerate that for one value to be added. Do I have this right? Are you aware of any workarounds to slip in new values to existing classes?

  2. Sid January 13, 2016 at 11:20 pm - Reply

    Can I test my WMI Class on a single machine before implementing globally? If Yes, how do I go about doing that can someone please explain.

  3. Jonathan Weinberg (@slippyfox) July 7, 2015 at 8:57 pm - Reply

    So. Uh. How’s that piece about the custom reports coming? :-p

    • Stephane July 12, 2015 at 1:21 pm - Reply

      Good one. I am working on it 😉 I will keep you tuned.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: