diff --git a/windows/providers/auto_run.rb b/windows/providers/auto_run.rb index 36d84d6d5..d7aa89ff1 100644 --- a/windows/providers/auto_run.rb +++ b/windows/providers/auto_run.rb @@ -19,13 +19,15 @@ # action :create do - windows_registry 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' do + windows_registry "CreateAutoRun #{new_resource.program} #{new_resource.args}" do + key_name 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' values new_resource.name => "\"#{new_resource.program}\" #{new_resource.args}" end end action :remove do - windows_registry 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' do + windows_registry "RemoveAutoRun #{new_resource.program} #{new_resource.args}" do + key_name 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' values new_resource.name => '' action :remove end diff --git a/windows/providers/env_vars.rb b/windows/providers/env_vars.rb index 233de430f..3edb8afcb 100644 --- a/windows/providers/env_vars.rb +++ b/windows/providers/env_vars.rb @@ -19,14 +19,16 @@ # action :create do - windows_registry Windows::KeyHelper::ENV_KEY do + windows_registry "CreateEnv #{new_resource.name} #{new_resource.value}" do + key_name Windows::KeyHelper::ENV_KEY values new_resource.name => new_resource.value action :create end end action :remove do - windows_registry Windows::KeyHelper::ENV_KEY do + windows_registry "RemoveEnv #{new_resource.name} #{new_resource.value}" do + key_name Windows::KeyHelper::ENV_KEY values new_resource.name => '' action :remove end diff --git a/windows/providers/path.rb b/windows/providers/path.rb index ad4837027..f0a7cfd31 100644 --- a/windows/providers/path.rb +++ b/windows/providers/path.rb @@ -19,21 +19,23 @@ # action :add do - path = ENV['PATH'].split(';') + path = Registry::get_value(Windows::KeyHelper::ENV_KEY,'Path').split(";") if !path.include?(new_resource.path) - path.insert(-1,new_resource.path) + path << new_resource.path end - windows_registry Windows::KeyHelper::ENV_KEY do + windows_registry "RegPathAdd #{new_resource.path}" do + key_name Windows::KeyHelper::ENV_KEY values 'Path' => path.join(';') end timeoutVars end action :remove do - path = ENV['PATH'].split(';') + path = Registry::get_value(Windows::KeyHelper::ENV_KEY,'Path').split(';') path.delete(new_resource.path) - windows_registry Windows::KeyHelper::ENV_KEY do + windows_registry "RegPathRemove #{new_resource.path}" do + key_name Windows::KeyHelper::ENV_KEY values 'Path' => path.join(';') end timeoutVars diff --git a/windows/resources/registry.rb b/windows/resources/registry.rb index 5b44d2cae..880f68b47 100644 --- a/windows/resources/registry.rb +++ b/windows/resources/registry.rb @@ -22,11 +22,11 @@ actions :create, :modify, :force_modify, :remove -attribute :key_name, :kind_of => String, :name_attribute => true -attribute :values, :kind_of => Hash +attribute :name, :kind_of => String, :name_attribute => true +attribute :key_name, :kind_of => String, :required => true +attribute :values, :kind_of => Hash, :required => true def initialize(name, run_context=nil) super @action = :modify - @key_name = name end