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 “rootcimv2”

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

InventoryAgent.log