System Center Configuration Manager 2007 fails to inventory Registry keys on 64-bit clients

Article ID: 2617545 - View products that this article applies to.
Expand all | Collapse all

Symptoms

You may find that you are unable to inventory HKLM\Software registry keys on 64-bit (x64) Windows client machines without first populating the data under the Wow6432Node key in the registry on these clients.

Note No other symptoms or errors may be noticed.

Cause

This happens because the class is defined for only the 32-bit (x86) architecture.

Resolution

To resolve this issue and get the 64-bit clients to report in the data without adding it to the wow6432node in the registry you will need to modify the Configuration.mof and SMS_def.mof files as indicated below.  You will have two different custom classes, one with _64 appended to it.

Configuration.Mof changes:

 // this section tells the inventory agent what to collect
#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("MS_ApplicationName", NOFAIL)
[DYNPROPS]
Class MS_ApplicationName

{

[key] string KeyName;
String StartTime;
String EndTime;
String Status;

};

[DYNPROPS]
Instance of MS_ApplicationName

{

keyname="ApplicationName";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|StartTime"),Dynamic,Provider("RegPropProv")] StartTime;

[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|EndTime"),Dynamic,Provider("RegPropProv")] EndTime;

[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|Status"),Dynamic,Provider("RegPropProv")] Status;

};

#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("MS_ApplicationName_64", NOFAIL)

[DYNPROPS]
Class MS_ApplicationName_64

{

[key] string KeyName;
String StartTime;
String EndTime;
String Status;

};

[DYNPROPS]

Instance of MS_ApplicationName_64

{

keyname="ApplicationName";

[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|StartTime"),Dynamic,Provider("RegPropProv")] StartTime;

[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|EndTime"),Dynamic,Provider("RegPropProv")] EndTime;

[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\SoftwareVendorName\\AppRegKey\\ApplicationName|Status"),Dynamic,Provider("RegPropProv")] Status;

};

SMS_Def.mof changes:

// this section tells the the inventory agent what to report to the server
#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("MS_ApplicationName", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("MS_ApplicationName"),SMS_Class_ID("SoftwareVendorName|MS_ApplicationName|1.0"),

SMS_Context_1("__ProviderArchitecture=32|uint32"),
SMS_Context_2("__RequiredArchitecture=true|boolean")]
Class MS_ApplicationName: SMS_Class_Template

{

[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String StartTime;
[SMS_Report(TRUE)] String EndTime;
[SMS_Report(TRUE)] String Status;

};

#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("MS_ApplicationName_64", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("MS_ApplicationName_64"),SMS_Class_ID("SoftwareVendorName |MS_ApplicationName_64|1.0"),

SMS_Context_1("__ProviderArchitecture=64|uint32"),
SMS_Context_2("__RequiredArchitecture=true|boolean")]
Class MS_ApplicationName_64 : SMS_Class_Template

{

[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String StartTime;
[SMS_Report(TRUE)] String EndTime;
[SMS_Report(TRUE)] String Status;

}; 

Once you have backed up and made the changes outlined above on the server, Run mofcomp.exe on both the sms_def.mof and configuration.mof as follows:

%WINDIR%\System32\WBEM\Mofcomp.exe "X:\Program Files\Microsoft Configuration Manager\Inboxes\clifiles.src\hinv\sms_def.mof"
%WINDIR%\System32\WBEM\Mofcomp.exe "X:\Program Files\Microsoft Configuration Manager\Inboxes\clifiles.src\hinv\configuration.mof"

Where X:\ is the drive where Configuration Manager 2007 is installed.

Once complete, allow the clients to perform the hardware inventory cycle to pick up the changes and start reporting.  At this point it should start working for both your x86 and x64 clients.

Note Be sure to fully test this resolution in your lab to ensure that it is suitable for your environment.

Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Properties

Article ID: 2617545 - Last Review: September 27, 2011 - Revision: 3.0
APPLIES TO
  • Microsoft System Center Configuration Manager 2007
  • Microsoft System Center Configuration Manager 2007 R2
  • Microsoft System Center Configuration Manager 2007 R3
  • Microsoft System Center Configuration Manager 2007 Service Pack 1
  • Microsoft System Center Configuration Manager 2007 Service Pack 2
Keywords: 
KB2617545

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com