“Undefined Property ConfigurationName” When Starting a DSC Configuration

Update: This issue is resolved in the November 2014 Update Rollup for Windows RT 8.1, Windows 8.1 and Windows Server 2012 R2. Thanks to Dave Wyatt for the heads up!

So, there I was today, working on a Custom DSC Resource and when I ran Start-DSCConfiguration I got this error:

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsof
t/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer 0497JACOBB with user sid S-1-5-21-2936601924-3794413074-933163191-500.
VERBOSE: [DC01]: LCM:  [ Start  Set      ]
VERBOSE: [DC01]: LCM:  [ End    Set      ]
Undefined property ConfigurationName
 At line:19, char:2
 Buffer:
onName = "TestVSS";
};^
insta
    + CategoryInfo          : SyntaxError: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MiClientApiError_Failed
    + PSComputerName        : dc01.arkenstone.com
 
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 0.678 seconds

Well, what the hell does that mean? I just did basically the same thing with another Custom Resource the other day, to the exact same machine and didn’t have any problems. After doing a bunch of different things that didn’t work, I goggled the error and came across this excellent article by Mike Robbins.

I had updated a bunch of Modules and the WMF Framework on my Windows 8.1 desktop to prepare to go through the Advanced DSC MVA Series with Jason Helmick and Jeffrey Snover. This is the version of PowerShell on my Windows 8.1 Machine:

$> $PSVersionTable

Name                           Value                                                                                                                                                          
----                           -----                                                                                                                                                          
PSVersion                      5.0.10018.0                                                                                                                                                    
WSManStackVersion              3.0                                                                                                                                                            
SerializationVersion           1.1.0.1                                                                                                                                                        
CLRVersion                     4.0.30319.34209                                                                                                                                                
BuildVersion                   10.0.9800.0                                                                                                                                                    
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                                                                        
PSRemotingProtocolVersion      2.2   

And here is the version on my Windows 2012 R2 Server:

$PSVersionTable

Name                           Value                                                                                                                                                                                                                             
----                           -----                                                                                                                                                                                                                             
PSVersion                      4.0                                                                                                                                                                                                                               
WSManStackVersion              3.0                                                                                                                                                                                                                               
SerializationVersion           1.1.0.1                                                                                                                                                                                                                           
CLRVersion                     4.0.30319.34003                                                                                                                                                                                                                   
BuildVersion                   6.3.9600.16394                                                                                                                                                                                                                    
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}                                                                                                                                                                                                              
PSRemotingProtocolVersion      2.2                      

If I look at my .MOF file, I have both of the sections Mike talks about in his article. I deleted the lines in the .MOF that said ConfigurationName = “TestVSS” and Name = “TestVSS” and tried to send the Configuration again.
Now, I got a different error, because there are a few other things in the .MOF file that my destination server doesn’t know how to handle. Here is the error:

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsof
t/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer 0497JACOBB with user sid S-1-5-21-2936601924-3794413074-933163191-500.
VERBOSE: [DC01]: LCM:  [ Start  Set      ]
VERBOSE: [DC01]: LCM:  [ End    Set      ]
Undefined property MinimumCompatibleVersion
 At line:26, char:2
 Buffer:
onHost="0497JACOBB";
};^
    + CategoryInfo          : SyntaxError: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MiClientApiError_Failed
    + PSComputerName        : dc01.arkenstone.com
 
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 2.215 seconds

Looking at my .MOF file, sure enough I have a couple of extra lines in addition to the ones described in Mike’s article:

 MinimumCompatibleVersion = "1.0.0";
 CompatibleVersionAdditionalProperties= {"Omi_BaseResource:ConfigurationName", 
"MSFT_DSCMetaConfiguration:StatusRetentionTimeInDays"};

If I delete those two lines from my .MOF file, I get what I expected to get all along:

$> Start-DscConfiguration -Wait -Force -Verbose -Path C:\Scripts\TestVSS -ComputerName dc01.arkenstone.com
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsof
t/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer 0497JACOBB with user sid S-1-5-21-2936601924-3794413074-933163191-500.
VERBOSE: [DC01]: LCM:  [ Start  Set      ]
VERBOSE: [DC01]: LCM:  [ Start  Resource ]  [[LutzVSS]SetShadowCopy]
VERBOSE: [DC01]: LCM:  [ Start  Test     ]  [[LutzVSS]SetShadowCopy]
VERBOSE: [DC01]:                            [[LutzVSS]SetShadowCopy] Drive is already enabled for VSS
VERBOSE: [DC01]: LCM:  [ End    Test     ]  [[LutzVSS]SetShadowCopy]  in 0.2340 seconds.
VERBOSE: [DC01]: LCM:  [ Skip   Set      ]  [[LutzVSS]SetShadowCopy]
VERBOSE: [DC01]: LCM:  [ End    Resource ]  [[LutzVSS]SetShadowCopy]
VERBOSE: [DC01]: LCM:  [ End    Set      ]
VERBOSE: [DC01]: LCM:  [ End    Set      ]    in  1.3900 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.973 seconds

Now, that’s great that it’s “working”, but since I am wondering if I update the WMF on the target server to the November WMF 5.0 Install, will my Configuration work without any issues? The answer is Yes, it does work without any issues.

One thought on ““Undefined Property ConfigurationName” When Starting a DSC Configuration

  1. KB3000850 addresses this on Server 2012 R2 / Windows 8.1 systems with WMF 4.0. My assumption is that this patch (or one with the same functionality for DSC, since KB3000850 is a rollup) will be available on all WMF 4.0 systems before PowerShell 5.0 is officially released.

Leave a Reply