kitchen-dsc icon indicating copy to clipboard operation
kitchen-dsc copied to clipboard

Building mof file ignores any -ErrorAction SilentlyContinue in DSC Resources

Open ThePSAdmin opened this issue 7 years ago • 0 comments

When converging in test-kitchen, it fails with the following error:

if (!$?) { if($LASTEXITCODE) { exit $LASTEXITCODE } else { exit 1 } } with id: 1DEA0CC5-2ABF-411C-A74A-BBA3FC0AD01A

D      [WinRM] creating command_id: 1DEA0CC5-2ABF-411C-A74A-BBA3FC0AD01A on shell_id 0B323920-4972-4FB8-90E4-949E4EC637C4
D      [WinRM] Waiting for output...
D      [WinRM] Processing output
       Get-ItemProperty : Cannot find path 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\DSC' because it does not exist.
       At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PSDesiredStateConfiguration.psm1:607
       char:32
       + ...      $reg = Get-ItemProperty -path $key -name "PSDscAllowPlainTextPas ...
       +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           + CategoryInfo          : ObjectNotFound: (HKLM:\SOFTWARE\...owerShell\3\DSC:String) [Get-ItemProperty], ItemNotFo

After troubleshooting, I found that in this code block https://github.com/test-kitchen/kitchen-dsc/blob/master/lib/kitchen/provisioner/dsc.rb#L124

the mof file is built, but any errors that are ignored in the dsc resources causes kitchen-dsc to exit. In this case, its the following line from the build in PSDesiredStateConfiguration module:

$reg = Get-ItemProperty -path $key -name "PSDscAllowPlainTextPassword" -ea SilentlyContinue

I'm guessing the checking of the $error variable was put there for a reason, so I thought I'd check via this issue before opening a pull request. Otherwise a suggested fix is using -erroraction stop when compiling the mof and adding the exit code to the catch block.

ThePSAdmin avatar Feb 08 '18 09:02 ThePSAdmin