Custom Inventory view not in Child Primary Database

Good day,

ConfigMgr 2007 R2 SP2
1x Central Site
10x Primary sites

We've successfully modified the .mof files to inventory custom registry keys.
32bit systems - HKLM\Software\Profile
64bit systems - HKLM\Software\Wow6432Node\Profile
The problem is that the view for this custom inventory is not in the database for 1 of the primary site servers.
The other 9 sites does have the view.

How can we fix this?

April 17th, 2014 8:50am

can you please provide the dataldr.log the day you updated the .mof
Free Windows Admin Tool Kit Click here and download it now
April 21st, 2014 5:34pm

In CM07 the SQL view will NOT get created until at least 1PC returned data for that inventory item. Make sure that the mod edit is right and that at least 1PC has returned data for that item. 
April 21st, 2014 9:05pm

Unfortunately the .mof files were updated a while ago. The dataldr.log has already been over-written.
Free Windows Admin Tool Kit Click here and download it now
May 5th, 2014 1:19am

We used the RegKeyToMof utility to create the extensions for the .mof files. A copy of the .mof files are used on all our other primary site servers, so I believe they are correct. (That was the first thing I checked. :)) I can also confirm that workstations are successfully sending their hardware inventory to the primary site server in question.

Here is the added code to the Configuration.mof:

#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("Profile", NOFAIL)
[DYNPROPS]
Class Profile
{
[key] string KeyName;
String Company[];
String LastLogon;
String MostLoggedOnUser;
String Assignments[];
};

[DYNPROPS]
Instance of Profile
{
KeyName="RegKeyToMOF_32";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Profile|Company"),Dynamic,Provider("RegPropProv")] Company;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Profile|LastLogon"),Dynamic,Provider("RegPropProv")] LastLogon;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Profile|MostLoggedOnUser"),Dynamic,Provider("RegPropProv")] MostLoggedOnUser;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Profile|Assignments"),Dynamic,Provider("RegPropProv")] Assignments;
};

#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("Profile_64", NOFAIL)
[DYNPROPS]
Class Profile_64
{
[key] string KeyName;
String Company[];
String LastLogon;
String MostLoggedOnUser;
String Assignments[];
};

[DYNPROPS]
Instance of Profile_64
{
KeyName="RegKeyToMOF_64";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Profile|Company"),Dynamic,Provider("RegPropProv")] Company;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Profile|LastLogon"),Dynamic,Provider("RegPropProv")] LastLogon;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Profile|MostLoggedOnUser"),Dynamic,Provider("RegPropProv")] MostLoggedOnUser;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Profile|Assignments"),Dynamic,Provider("RegPropProv")] Assignments;
};

Here is the added code to the SMS_Def.mof:

#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("Profile", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("Profile"),SMS_Class_ID("Custom|Profile|1.0"),
SMS_Context_1("__ProviderArchitecture=32|uint32"),
SMS_Context_2("__RequiredArchitecture=true|boolean")]
Class Profile: SMS_Class_Template
{
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String Company[];
[SMS_Report(TRUE)] String LastLogon;
[SMS_Report(TRUE)] String MostLoggedOnUser;
[SMS_Report(TRUE)] String Assignments[];
};

#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("Profile_64", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("Profile"),SMS_Class_ID("Custom|Profile|1.0"),
SMS_Context_1("__ProviderArchitecture=64|uint32"),
SMS_Context_2("__RequiredArchitecture=true|boolean")]
Class Profile_64 : SMS_Class_Template
{
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String Company[];
[SMS_Report(TRUE)] String LastLogon;
[SMS_Report(TRUE)] String MostLoggedOnUser;
[SMS_Report(TRUE)] String Assignments[];
};

May 5th, 2014 1:34am

In CM07, the SQL view will NOT get created until data is returned from at least 1 client.

Confirm that your edit is correct and that at least one client have returned data.

Use this articles/blog post to troubleshot.

http://www.myitforum.com/articles/8/view.asp?id=11236

http://be.enhansoft.com/post/2013/07/25/Troubleshooting-Inventory-Flow.aspx

Free Windows Admin Tool Kit Click here and download it now
May 5th, 2014 8:08am

I've gone through the articles and do not see any problems. The inventory data (HW/Software etc.), is populated in the database.

I installed a new client that reported into this primary site, and the new inventory data is available. Unfortunately the Custom Inventory view is still not in the database. I've also checked now and there is no data in the custom table of the database.

All other primaries site have a custom table called dbo.Profile_DATA1. The view, dbo.v_GS_Profile1, displays data from this table.

May 12th, 2014 4:04am

On one of the PC that should be reporting the data, open the inventoryagent.log. Do you see the PC querying for the profile data?
Free Windows Admin Tool Kit Click here and download it now
May 12th, 2014 7:40am

Yes. This client reported successfully into another Management Point. I changed the site code for this client to report into the Site server that has the problem.

Below are screenshots of the Dataldr.log and MP_Hinv.Log, on the Primary site server.:

May 12th, 2014 9:12am

ok, but we need to first determine if the inventory agent is seeing the mof edit. Can you see the profile class within inventory agent log?
Free Windows Admin Tool Kit Click here and download it now
May 12th, 2014 10:06am

Yes. This client reported successfully into another Management Point. I changed the site code for this client to report into the Site server that has the problem.

Below are screenshots of the Dataldr.log and MP_Hinv.Log, on the Primary site server.:

May 12th, 2014 4:12pm

Yes. This client reported successfully into another Management Point. I changed the site code for this client to report into the Site server that has the problem.

Below are screenshots of the Dataldr.log and MP_Hinv.Log, on the Primary site server.:

Free Windows Admin Tool Kit Click here and download it now
May 12th, 2014 4:12pm

Yes. This client reported successfully into another Management Point. I changed the site code for this client to report into the Site server that has the problem.

Below are screenshots of the Dataldr.log and MP_Hinv.Log, on the Primary site server.:

May 12th, 2014 4:12pm

Yes, the profile class is in the InventoryAgent.log.

Free Windows Admin Tool Kit Click here and download it now
May 13th, 2014 1:13am

For that PC, open respite explorer, do you see the profile class?
May 13th, 2014 2:39pm

The "Profile" inventory data is in the Resource Explorer.
Free Windows Admin Tool Kit Click here and download it now
May 13th, 2014 2:44pm

In SQL server management studio, find the profiler table then select the properties and see the dependency this will tell you the name of the stored procedure.
May 13th, 2014 2:47pm

There are no dependencies listed.

Free Windows Admin Tool Kit Click here and download it now
May 13th, 2014 2:58pm

I'm sitting in a hotel in Houston so I can't look this up but one of the maintenance task name that will create the views, all the maintenance task does is call a store procedure. Trigger the maintenance task and it will create the view. It takes about w minutes to run. If you find the store procedure name you can run it from SQL management studio . (generally that is what I do)
May 13th, 2014 3:15pm

I compared the stored procedures on the problematic site and another one. The dbo.pProfile_DATA1 stored procedure is not there. (Hope I'm looking at the right place in SQL Management Studio: Databases - SMS_SiteCode - Programmability - Stored Procedures.)

Free Windows Admin Tool Kit Click here and download it now
May 13th, 2014 3:41pm

Now that I'm back from Teched and can look this up the command is "exec sp_RenewSMSSchemaViews" execute it within SSMS.
May 24th, 2014 10:04am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics