I had the need last week to extend Hardware Inventory to report on installed Autodesk products, their license type and serial number.
This information is available in registry but is in a different place for each Autodesk product which makes retrieving it a bit difficult.
I used a list of all registry locations for each Autodesk product and then used the magic of excel to format it into MOF format.
The following steps will show how to extend ConfigMgr 2012 inventory to include Autodesk licensing information:
- Click the following link to get a MOF-formatted link of all available registry-accessible Autodesk products (to 2014)
- Advisable: Take a backup of current Configuration.mof in <ConfigMgr Installation Directory>\inboxes\clifiles.src\hinv
- Copy and paste the products you want to include in Inventory into Configuration.mof at the bottom between ‘// Added extensions start’ and ‘// Added extensions end’
Note – the file contains entries for both 32-bit and 64-bit products, be sure to take both. 64-bit starts at the middle of the file.
Note – be sure to take the two class definitions at the top and middle of the document. (Anything removed should start with [DYNPROPS] and finish with };
- Save Configuration.mof
- Copy Configuration.mof to a test PC (e.g. %Temp%)
- Run the following command in cmd.exe to check for syntax issues:
mofcomp.exe -check “%Temp%\configuration.mof” (assuming file was copied to %temp%)
- Ensure the resultant output contains “MOF file has been successfully parsed” (about 6 to 8 lines up) and “Syntax check complete“
- Run the following command to insert the configuration.mof changes into WMI:
mofcomp.exe “%Temp%\configuration.mof” (assuming file was copied to %temp%)
- On the ConfigMgr site server, open the console and go to Administration > Client Settings > Default Client Settings > Properties
- Click the Hardware Inventory tab then click ‘Set Classes‘
- Wait for the list to populate then click ‘Add‘
- Click Connect then enter the Computer Name of the test PC that has just had the configuration loaded and any required credentials to connect to WMI.
- Check the checkboxes next to Autodesk_Inventory and Autodesk_Inventory_64 and click OK
- Ensure Autodesk_Inventory and Autodesk_Inventory_64 are checked in the Hardware Inventory Classes window then click OK twice more.
Dataldr.log should reflect the change being made, two new tables (AUTODESK_INVENTORY_DATA and AUTODESK_INVENTORY_64_DATA) and two new views (v_GS_AUTODESK_INVENTORY and v_GS_AUTODESK_INVENTORY_64) will be added to the database. After which, machines that run hardware inventory should start to report on any installed Autodesk products that they have installed.
The below query can be created which will show this information in a list (64-bit shown):
select SMS_R_System.Name, SMS_G_System_AUTODESK_INVENTORY_64.* from SMS_R_System inner join SMS_G_System_AUTODESK_INVENTORY_64 on SMS_G_System_AUTODESK_INVENTORY_64.ResourceID = SMS_R_System.ResourceId where SMS_G_System_AUTODESK_INVENTORY_64.ProductName is not null
SYS.Name0, ADESK.InstanceKey, ADESK.KeyName00,
ADESK.ProductName00, ADESK.Release00, ADESK.MachineID,
ADESK.RevisionID, ADESK.SerialNumber00, ADESK.StandaloneNetworkType00,
ADESK.TimeKey from vSMS_R_System AS SYS INNER JOIN AUTODESK_INVENTORY_64_DATA AS ADESK
ON ADESK.MachineID = SMS_R_System.ItemKey where ADESK.ProductName00 is not null