Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

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.

Symptoms

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

Cause

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.

Resolution

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

Was this information helpful?

What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×