I think you're stuck with the three inventory specifications. I looked at this a couple weeks ago and found the local WMI view provider to be a limiter. I was hoping to create a custom WMI class that joined the various source locations of the SQL data. Unfortunately, the view provider fails to perform the join if any specified class does not exist or does not have instances. I'm not a WMI expert and could have missed something that would have allowed this to work.
A second thought was to deploy a script that could detect valid SQL classes and dynamically create the class described above. That was a bit complex though. In the end, I just modified my configuration mof to add the three SQL classes and then created a SCCM SQL view that performed a Union All on the three newly created inventory tables. The data was being consumed by another solution, so presentation in SCCM wasn't important. If I had time, I'd probably opt for my second option since it would keep things cleaner -even though implementation would be a bit more complex and it relied on sw dist. From: [email protected] [mailto:[email protected]] On Behalf Of HELMS, DAVID C Sent: Friday, May 02, 2014 10:49 AM To: [email protected] Subject: [mssms] SCCM 2012 + Collecting sqlserver info within Hardware Inventory? I am trying to collect information about Sqlserver instances within WMI. I was able to add this class in hardware inventory, but the location of this information can differ depending on the version of SQL installed. Is there an easier way to be able to retrieve this without having to have multiple Namespace locations? The Class ID seems to be the same but the namespace will vary. Below is a snip it from the exported mof from SCCM 2012 on this namespace. The highlighted part is what could be different depending on sql. [ SMS_Report (TRUE), SMS_Group_Name ("SqlServiceAdvancedProperty"), SMS_Class_ID ("MICROSOFT|SQLSERVICEADVANCEDPROPERTY|1.0"), Namespace ("root\\\\Microsoft\\\\SqlServer\\\\ComputerManagement11") ] class SqlServiceAdvancedProperty : SMS_Class_Template { [ SMS_Report (TRUE), key ] UInt32 PropertyIndex; [ SMS_Report (TRUE), key ] String PropertyName; [ SMS_Report (TRUE), key ] String ServiceName; [ SMS_Report (TRUE), key ] UInt32 SqlServiceType; [ SMS_Report (TRUE) ] Boolean IsReadOnly; [ SMS_Report (TRUE) ] UInt32 PropertyNumValue; [ SMS_Report (TRUE) ] String PropertyStrValue; [ SMS_Report (TRUE) ] UInt32 PropertyValueType; };

