diff --git a/lib/puppet/provider/dsc_base_provider/dsc_base_provider.rb b/lib/puppet/provider/dsc_base_provider/dsc_base_provider.rb index cd977738..be189e0b 100644 --- a/lib/puppet/provider/dsc_base_provider/dsc_base_provider.rb +++ b/lib/puppet/provider/dsc_base_provider/dsc_base_provider.rb @@ -773,7 +773,7 @@ def munge_psmodulepath(resource) <<~MUNGE_PSMODULEPATH.strip $UnmungedPSModulePath = [System.Environment]::GetEnvironmentVariable('PSModulePath','machine') $MungedPSModulePath = $env:PSModulePath + ';#{vendor_path}' - [System.Environment]::SetEnvironmentVariable('PSModulePath', $MungedPSModulePath, [System.EnvironmentVariableTarget]::Machine) + Set-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment' -Name 'PSModulePath' -Value $MungedPSModulePath $env:PSModulePath = [System.Environment]::GetEnvironmentVariable('PSModulePath','machine') MUNGE_PSMODULEPATH end diff --git a/lib/puppet/provider/dsc_base_provider/invoke_dsc_resource_postscript.ps1 b/lib/puppet/provider/dsc_base_provider/invoke_dsc_resource_postscript.ps1 index ffbbf029..87cc7365 100644 --- a/lib/puppet/provider/dsc_base_provider/invoke_dsc_resource_postscript.ps1 +++ b/lib/puppet/provider/dsc_base_provider/invoke_dsc_resource_postscript.ps1 @@ -6,7 +6,7 @@ Try { } Finally { If (![string]::IsNullOrEmpty($UnmungedPSModulePath)) { # Reset the PSModulePath - [System.Environment]::SetEnvironmentVariable('PSModulePath', $UnmungedPSModulePath, [System.EnvironmentVariableTarget]::Machine) + Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name 'PSModulePath' -Value $UnmungedPSModulePath $env:PSModulePath = [System.Environment]::GetEnvironmentVariable('PSModulePath', 'machine') } } diff --git a/spec/unit/puppet/provider/dsc_base_provider/dsc_base_provider_spec.rb b/spec/unit/puppet/provider/dsc_base_provider/dsc_base_provider_spec.rb index fc472c43..3edc007f 100644 --- a/spec/unit/puppet/provider/dsc_base_provider/dsc_base_provider_spec.rb +++ b/spec/unit/puppet/provider/dsc_base_provider/dsc_base_provider_spec.rb @@ -1529,7 +1529,8 @@ end it 'updates the system PSModulePath to $MungedPSModulePath' do - expect(result).to match(/SetEnvironmentVariable\('PSModulePath', \$MungedPSModulePath/) + -Name 'PSModulePath' -Value $MungedPSModulePath + expect(result).to match(/-Name 'PSModulePath' -Value \$MungedPSModulePath/) end it 'sets the process level PSModulePath to the modified system PSModulePath' do