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;
};




Reply via email to