Prerequisites
Steps to reproduce
Reproduction of the issue was done with the resource DnsServerRootHint in DnsServerDsc.
When passing values to a parameter defined as array and `EmbeddedInstance("MSFT_KeyValuePair")], compiling the following configuration.
This issue is related to #126.
ipmo PSDesiredStateConfiguration -Force
$rootHints=@{
'A.ROOT-SERVERS.NET.'='2001:503:ba3e::2:30''B.ROOT-SERVERS.NET.'='2001:500:84::b'
}
configurationRootHintsConfig {
Import-DscResource-ModuleName DnsServerDsc
DnsServerRootHint xRootHints
{
IsSingleInstance ='Yes'
NameServer =$rootHints
}
}results in this invalid MOF file. Note that the parameter NameServer is an array but it is lacking the curly braces.
/*
@TargetNode='localhost'
@GeneratedBy=randr
@GenerationDate=08/11/2025 22:39:07
@GenerationHost=RAANDREE1
*/
instance of MSFT_KeyValuePair as $MSFT_KeyValuePair1ref
{
Key = "B.ROOT-SERVERS.NET.";
Value = "2001:500:84::b";
};
instance of MSFT_KeyValuePair as $MSFT_KeyValuePair2ref
{
Key = "A.ROOT-SERVERS.NET.";
Value = "2001:503:ba3e::2:30";
};
instance of DSC_DnsServerRootHint as $DSC_DnsServerRootHint1ref
{
IsSingleInstance = "Yes";
ResourceID = "[DnsServerRootHint]xRootHints";
ModuleVersion = "3.0.0";
SourceInfo = "D:\\Git\\CommonTasks\\tests\\x.ps1::11::5::DnsServerRootHint";
NameServer = $MSFT_KeyValuePair1ref,
$MSFT_KeyValuePair2ref
;
ModuleName = "DnsServerDsc";
ConfigurationName = "RootHintsConfig";
};
instance of OMI_ConfigurationDocument
{
Version="2.0.0";
MinimumCompatibleVersion = "1.0.0";
CompatibleVersionAdditionalProperties= {"Omi_BaseResource:ConfigurationName"};
Author="randr";
GenerationDate="08/11/2025 22:39:07";
GenerationHost="RAANDREE1";
Name="RootHintsConfig";
};
A correct MOF file would look like this:
/*
@TargetNode='localhost'
@GeneratedBy=randr
@GenerationDate=08/11/2025 23:00:24
@GenerationHost=RAANDREE1
*/
instance of MSFT_KeyValuePair as $MSFT_KeyValuePair1ref
{
Key = "A.ROOT-SERVERS.NET.";
Value = "2001:503:ba3e::2:30";
};
instance of MSFT_KeyValuePair as $MSFT_KeyValuePair2ref
{
Key = "B.ROOT-SERVERS.NET.";
Value = "2001:500:84::b";
};
instance of DSC_DnsServerRootHint as $DSC_DnsServerRootHint1ref
{
SourceInfo = "D:\\Git\\CommonTasks\\tests\\x.ps1::11::5::DnsServerRootHint";
ModuleVersion = "3.0.0";
NameServer = {
$MSFT_KeyValuePair1ref,
$MSFT_KeyValuePair2ref
};
IsSingleInstance = "Yes";
ModuleName = "DnsServerDsc";
ResourceID = "[DnsServerRootHint]xRootHints";
ConfigurationName = "RootHintsConfig";
};
instance of OMI_ConfigurationDocument
{
Version="2.0.0";
MinimumCompatibleVersion = "1.0.0";
CompatibleVersionAdditionalProperties= {"Omi_BaseResource:ConfigurationName"};
Author="randr";
GenerationDate="08/11/2025 23:00:24";
GenerationHost="RAANDREE1";
Name="RootHintsConfig";
};
Expected behavior
Correct MOF file to be creaetd.
Actual behavior
MOF file has a syntax error.
Error details
PSMessageDetails : Exception : System.InvalidOperationException: Invalid MOF definition for node 'localhost': Exception calling "ValidateInstanceText" with "1" argument(s): "Syntax error: At line:26, char:40 Buffer: $MSFT_KeyValuePair1ref,^ $M "TargetObject : CategoryInfo : InvalidOperation: (:) [Write-Error], InvalidOperationExceptionFullyQualifiedErrorId : InvalidMOFDefinition,Write-NodeMOFFileErrorDetails : Invalid MOF definition for node 'localhost': Exception calling "ValidateInstanceText" with "1" argument(s): "Syntax error: At line:26, char:40 Buffer: $MSFT_KeyValuePair1ref,^ $M "InvocationInfo : System.Management.Automation.InvocationInfoScriptStackTrace : at Write-NodeMOFFile, D:\Git\CommonTasks\output\RequiredModules\PSDesiredStateConfiguration\2 .0.7\PSDesiredStateConfiguration.psm1: line 2954 at Configuration, D:\Git\CommonTasks\output\RequiredModules\PSDesiredStateConfiguration\2.0.7 \PSDesiredStateConfiguration.psm1: line 2236 at <ScriptBlock>, D:\Git\CommonTasks\tests\x.ps1: line 8 at <ScriptBlock>, D:\Git\CommonTasks\tests\x.ps1: line 18 at <ScriptBlock>, <No file>: line 1PipelineIterationInfo : {0, 0}Environment data
Name Value
---------
PSVersion 7.5.2
PSEdition Core
GitCommitId 7.5.2
OS Microsoft Windows 10.0.26100
Platform Win32NT
PSCompatibleVersions {1.0,2.0,3.0,4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0Version
Crescendo?
Visuals
No response
Prerequisites
Steps to reproduce
Reproduction of the issue was done with the resource
DnsServerRootHintin DnsServerDsc.When passing values to a parameter defined as array and `EmbeddedInstance("MSFT_KeyValuePair")], compiling the following configuration.
This issue is related to #126.
results in this invalid MOF file. Note that the parameter
NameServeris an array but it is lacking the curly braces.A correct MOF file would look like this:
Expected behavior
Correct MOF file to be creaetd.Actual behavior
MOF file has a syntax error.Error details
Environment data
Version
Crescendo?
Visuals
No response