This updated mof snippet addresses v4.0 (currently in beta) of .net Frameworks. If you currently have dotNetframeworks (older) mof edit, you may want to carefully check if replacing the old one with this new one will affect any current collection queries or reports. I've made some changes to this, especially in regards to v3.0, compared to the old mof snippet. It'll likely be fine; but I'm just letting you know! You may want to remove the old one, SiteSweeper out the old data, and then put in this new one. Also, there isn't any SP 's for v4 yet; so in the v4 section I made a complete guess about what the regkey might be if a ServicePack ever comes out for v4. There may never be one, or if there is one, I've guessed the regkey incorrectly. That might need to be updated if my guess is wrong.
//=================================DOTNetFrameworks
//===If ConfigMgr07, add this section to the bottom of sms_def.mof
#pragma namespace("\\\\.\\root\\cimv2\\sms")
#pragma deleteclass("DotNETFrameworks", NOFAIL)
[SMS_Report(TRUE), SMS_Group_Name("DotNetFrameworks"), SMS_Class_ID("CUSTOM|DotNETFrameworks|2.0")]
Class DotNETFrameworks : SMS_Class_Template
{
[SMS_Report(TRUE),key] string Version;
[SMS_Report(TRUE) ] string Installed;
[SMS_Report(TRUE) ] string ServicePack;
[SMS_Report(TRUE) ] string BuildNumber;
};
//=================================DOTNetFrameworks
//=======If ConfigMgr07, add this section to Configuration.mof
#pragma namespace("\\\\.\\root\\cimv2")
#pragma deleteclass("DotNETFrameworks",NOFAIL)
[DYNPROPS]
class DotNETFrameworks
{ [key] string Version="";
boolean Installed;
string ServicePack;
string BuildNumber;
};
[DYNPROPS]
instance of DotNETFrameworks
{ Version="1.1.4322";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v1.1.4322|Install"),Dynamic,Provider("RegPropProv")] Installed;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v1.1.4322|SP"),Dynamic,Provider("RegPropProv")] ServicePack;
};
[DYNPROPS]
instance of DotNETFrameworks
{ Version="2.0.50727";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727|Install"),Dynamic,Provider("RegPropProv")] Installed;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727|SP"),Dynamic,Provider("RegPropProv")] ServicePack;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727|Version"),Dynamic,Provider("RegPropProv")] BuildNumber;
};
[DYNPROPS]
instance of DotNETFrameworks
{ Version="3.0";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0|Install"),Dynamic,Provider("RegPropProv")] Installed;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0|SP"),Dynamic,Provider("RegPropProv")] ServicePack;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0|Version"),Dynamic,Provider("RegPropProv")] BuildNumber;
};
[DYNPROPS]
instance of DotNETFrameworks
{ Version="3.5";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5|Install"),Dynamic,Provider("RegPropProv")] Installed;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5|SP"),Dynamic,Provider("RegPropProv")] ServicePack;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5|Version"),Dynamic,Provider("RegPropProv")] BuildNumber;
};
[DYNPROPS]
instance of DotNETFrameworks
{ Version="4.0";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client|Install"),Dynamic,Provider("RegPropProv")] Installed;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client|SP"),Dynamic,Provider("RegPropProv")] ServicePack;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client|Version"),Dynamic,Provider("RegPropProv")] BuildNumber;
};
A potential report:
select sys.netbios_name0,
dn.version0 as [Version Looked for],
dn.servicepack0 as [Service Pack if any],
dn.buildnumber0 as [Build Number],
Case when dn.installed0 = '1' then '*' else '' end as [Installed]
from
v_gs_dotnetframeworks0 dn
join v_r_system sys on sys.resourceid=dn.resourceid
order by sys.netbios_name0, dn.version0