JeaRoleCapabilities: 'EnvironmentVariables' not idempotent
General-Chaos opened this issue · comments
When applying environment variables on JeaRoleCapabilities, the test is always false, no matter how I try and pass the variables.
Minimal reproduction, version 0.6.5:
$params =@{
Path = "C:\Program Files\WindowsPowerShell\Modules\TestJEADSC\RoleCapabilities\test.psrc"
VisibleCmdlets = @(
'Get-Command',
'Measure-Object'
)
EnvironmentVariables = @("@{'Test' = 'test'}")
}
Invoke-DscResource -Name JeaRoleCapabilities -Property $params -Method set -ModuleName JEADSC -Verbose
Invoke-DscResource -Name JeaRoleCapabilities -Property $params -Method test -ModuleName JEADSC -Verbose
Expectation : Test passes
Actual result:
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = Resourceset,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/D
esiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer COMPUTER with user sid <removed>.
VERBOSE: [COMPUTER]: LCM: [ Start Set ] [[JeaRoleCapabilities]DirectResourceAccess]
VERBOSE: [COMPUTER]: LCM: [ End Set ] [[JeaRoleCapabilities]DirectResourceAccess] in 0.0160 seconds.
VERBOSE: [COMPUTER]: LCM: [ End Set ] in 0.0310 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
RebootRequired
--------------
False
VERBOSE: Time taken for configuration job to complete is 0.094 seconds
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = Resourcetest,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/
DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer COMPUTER with user sid <removed>.
VERBOSE: [COMPUTER]: LCM: [ Start Test ] [[JeaRoleCapabilities]DirectResourceAccess]
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Validating Path: C:\Program Files\WindowsPowerShell\Modules\TestJEADSC\RoleCapabilities\test.
psrc
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Checking file extension is psrc for: C:\Program Files\WindowsPowerShell\Modules\TestJEADSC\Ro
leCapabilities\test.psrc
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Checking parent forlder is RoleCapabilities for: C:\Program Files\WindowsPowerShell\Modules\T
estJEADSC\RoleCapabilities\test.psrc
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Checking Folder is in PSModulePath is psrc for: C:\Program Files\WindowsPowerShell\Modules\Te
stJEADSC\RoleCapabilities\test.psrc
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Path is a valid psrc path. Returning true.
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] Existing Configuration: {
"EnvironmentVariables": [
"System.Collections.Hashtable"
],
"Path": "C:\\Program Files\\WindowsPowerShell\\Modules\\TestJEADSC\\RoleCapabilities\\test.psrc",
"VisibleCmdlets": [
"Get-Command",
"Measure-Object"
]
}
VERBOSE: [COMPUTER]: [[JeaRoleCapabilities]DirectResourceAccess] New COnfiguration: {
"EnvironmentVariables": [
"@{\u0027Test\u0027 = \u0027test\u0027}"
],
"Path": "C:\\Program Files\\WindowsPowerShell\\Modules\\TestJEADSC\\RoleCapabilities\\test.psrc",
"VisibleCmdlets": [
"Get-Command",
"Measure-Object"
]
}
VERBOSE: [COMPUTER]: LCM: [ End Test ] [[JeaRoleCapabilities]DirectResourceAccess] False in 0.0470 seconds.
VERBOSE: [COMPUTER]: LCM: [ End Set ] in 0.0630 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
InDesiredState : False
VERBOSE: Time taken for configuration job to complete is 0.116 seconds
Also the case when setting /testing from MOF. I have tried many different formats of the arg and cannot get it to work. I did notice that JeaSessionConfiguration implements 'EnvironmentVariables' differently and the comparison does work in that resource. Apologies if I am missing something obvious.