ConfigMgr2007: Install fails with Fatal Error - Error Number: 0x80041026

Here's a cool tip we've already received a couple calls on.  This one comes from Brian Shaw, a real life Support Engineer from Charlotte, North Carolina:

========

Issue: When trying to install the RTM version of System Center Configuration Manager 2007 you may get a message
in the Setup log stating:

Setup cannot compile MOF file C:\Program Files\Microsoft Configuration Manager\bin\i386\NetDisc.mof. Do you want to continue?
Setup failed to install SMS Provider. For more information about this error, see Microsoft Knowledge Base at https://microsoft.com or contact Microsoft Technical Support for further assistance.

If you look in the mofcomp.log file located in %system32%\wbem\logs folder it may also have this entry:

An error occurred while processing item 2 defined on lines 21 - 62 in file C:\Program Files\Microsoft Configuration Manager\bin\i386\NetDisc.mof: Error Number: 0x80041026, Facility: WMI

If you remove the lines that are referenced then the mof will compile. Here are the lines:

class DiscoverySession
{
[key] uint32 dwSessionInstance = 1;
// whether discovery is enabled or not
boolean bDiscoveryActive = true;
// maximum duration of discovery in minutes
uint32 dwDiscoveryDuration_min = 60;
// time after which entities will be deleted if not rediscovered in days
uint32 dwDiscoveryAgePeriod = 14;
// actual DLL names of the modules
string stModuleList[] = { "AD_ADM.dll", "AD_SIM.dll" };
// This is controlled by the discovery controller and should not be
// changed. It represents what happened in the last discovery session.
// Its meanings are as follows:
// 0 = Discovery has not been run, or the last discovery session
// completed fully
// 1 = Discovery has started, but has not yet run to completion
// 2 = Resetting of capable flags, aging of devices, and exporting
// has started, but not run to completion
uint32 dwLastDiscoveryStatus = 0;
boolean bLogging = true;
//This is the date and time that the last full export took place.
//For first discovery this will be a null time, but will
//be set to the time and date a full 'all system export' took
//place. This is used to calculate when we next need to do
//a full export. When we do a full export we export things regardless
//of if they change with this discovery cycle
DateTime tLastFullExport = "**************.******+***";
//This is the number of days between doing full exports
uint32 dwNumberDaysBetweenFullExports = 90;
// this is an informational description of the type of discovery (topology,
topology + client...) undertaken
string szDiscoveryType = "Topology";
};
instance of DiscoverySession
{
};

Cause: This can occur under the following scenario:

  1. You install ConfigMgr 2007 Service Pack 1 (SP1) but then remove it.
  2. You try to install the RTM version of ConfigMgr 2007 again on the same system.

When this is done, the Class added by SP1 that is defined in the netdesc.mof file is not removed.  When you try to install the RTM version again it tries to create that class but without all the attributes contained in the SP1 version, hence the error.

Resolution: To resolve the issue simply add this line to the netdesc.mof file used to install the RTM version on ConfigMgr 2007:

boolean bAMTDiscovery = false;

Add it after this line:

boolean bDiscoveryActive = true;

The MOF will then compile and the installation will succeed

========

Thanks Brian!

J.C. Hornbeck | Manageability Knowledge Engineer