CertificateID of metaconfiguration is not compatible

I am trying to set CertificateID (which is the thumbprint of a cert) to LCM and getting this error. The server has WMF5 Feb Review. Without CertificateID, it is fine.

The property CertificateID of metaconfiguration is not compatible with the current version 2.0.0 of the configuration document. This property only works with version greater than or
equal to 1.0.0 . In case the version is greater, then the property MinimumCompatibleVersion should be set to atleast 1.0.0 . Set these properties in the OMI_ConfigurationDocument
instance in the document and try again.

I manually change it to 1.0.0 in the MOF and something else complains about it needs to be 2.0.0.

What’s in your MOF document? I just tested it on my computer (which also has the Feb Preview), and didn’t get any error. Here’s what showed up in my meta.mof file:

instance of MSFT_DSCMetaConfiguration as $MSFT_DSCMetaConfiguration1ref
{
CertificateID = "D56193F71370394ED0C380C536B35ED60B4F36FE";
};

instance of OMI_ConfigurationDocument
{
 Version="2.0.0";
 MinimumCompatibleVersion = "1.0.0";
 CompatibleVersionAdditionalProperties= { };
 Author="UserName";
 GenerationDate="03/04/2015 22:47:02";
 GenerationHost="ComputerName";
 Name="LCM";
};

This is my MOF. Not sure why mine has MinimumCompatibleVersion = “2.0.0”;


instance of MSFT_DSCMetaConfiguration as $MSFT_DSCMetaConfiguration1ref
{
DebugMode = {
    "All"
};
 RefreshMode = "Pull";
 ConfigurationID = "0e59ac2c-43ef-4d30-a5d3-44dbaa4d8351";
 RebootNodeIfNeeded = False;
 CertificateID = "1111111111111111111111111111111111111";

  ConfigurationDownloadManagers = {
  $MSFT_FileDownloadManager1ref,
  $MSFT_FileDownloadManager2ref,
  $MSFT_FileDownloadManager3ref  
 };
  PartialConfigurations = {
  $MSFT_PartialConfiguration1ref,
  $MSFT_PartialConfiguration2ref,
  $MSFT_PartialConfiguration3ref  
 };
};

instance of OMI_ConfigurationDocument
{
 Version="2.0.0";
 MinimumCompatibleVersion = "2.0.0";
 CompatibleVersionAdditionalProperties= { };
 Author="skongdee";
 GenerationDate="03/05/2015 10:11:13";
 GenerationHost="xxxxxx";
 Name="LCMConfig";
};

You’re using Partial configurations (and multiple download managers) there, which are 2.0-only features. Let me see if I can reproduce the problem that way.

PS C:\Windows\system32> Set-DscLocalConfigurationManager -Path $LCMPullServerfolder -Verbose -ComputerName xxxxxxx

VERBOSE: Performing the operation “Start-DscConfiguration: SendMetaConfigurationApply” on target “MSFT_DSCLocalConfigurationManager”.
VERBOSE: Perform operation ‘Invoke CimMethod’ with following parameters, ‘‘methodName’ = SendMetaConfigurationApply,‘className’ = MSFT_DSCLocalConfigurationManager,‘namespaceName’ = root/Microsoft/Windows/DesiredState
Configuration’.
VERBOSE: An LCM method call arrived from computer xxxxxxx with user sid S-1-5-21-xxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx.
VERBOSE: [xxxxxxxx]: LCM: [ Start Set ]
The property CertificateID of metaconfiguration is not compatible with the current version 2.0.0 of the configuration document. This property only works with version greater than or equal to 1.0.0 . In case the
version is greater, then the property MinimumCompatibleVersion should be set to atleast 1.0.0 . Set these properties in the OMI_ConfigurationDocument instance in the document and try again.
+ CategoryInfo : InvalidArgument: (root/Microsoft/…gurationManager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 4
+ PSComputerName : xxxxxxxxx

VERBOSE: Operation ‘Invoke CimMethod’ complete.
VERBOSE: Set-DscLocalConfigurationManager finished in 0.166 seconds.

Yep, okay, I can reproduce this problem as well. I used this configuration code in the repro, to force a MOF document with a MinimumCompatibleVersion value of 2.0.0:

[DscLocalConfigurationManager()]
configuration LCM
{
    Settings
    {
        CertificateID = 'D56193F71370394ED0C380C536B35ED60B4F36FE'
        RefreshMode   = 'Pull'
    }

    ConfigurationRepositoryWeb Web1 {
        Name                    = 'WebPullServer1'
        ServerURL               = 'http://servername/PSDscPullServer.svc'
        AllowUnsecureConnection = $true
    }    
}

LCM -OutputPath $env:temp\LCM | ForEach-Object { psedit $_.FullName }

Thank you Dave for taking the time.

Even when I remove CertificateId, and everything else except Refreshmode and configurationId, i got this error.

The specified Property does not exist.
+ CategoryInfo : MetadataError: (root/Microsoft/…gurationManager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 12

I’ve passed a link to this thread on to the PowerShell team at MS, and they’re investigating. :slight_smile:

Thank you!

CertificateId is not supported in WMF5 Nov? I uninstalled WMF5 Feb and my existing config is not complaining now. However when I add CertificateId, it said it is not valid. Get-DscLocalConfigurationManager is listing CerfificateID.

In WMF5 Feb, I am guessing there is something in my configuration is not compatible even though the MOF are generated. When I Set-DSCLocal… it complains about Property does not exist but it actually set it. The only property that got changed that I know of is DebugMode. Everything else in my MOF above should work. :frowning: