Read windows registry Key values


#1

Hi All,

I am working on a use case where I need to read two registry key values and
compare there data in a recipe

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

both are having a value name(ComputerName) and value data(may be same or
different). I need to compare there value data.

Do I need to write like this:; or some other better way??

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, access) do |reg|
reg.each{|name, value, keys | compName = keys}
end
Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, access) do |reg|
reg.each{|name, value, keys | compNameActive = keys}
end

Any idea??

Thanks & Regards,
Sachin Gupta


#2

Sachin, have you looked at the docs for the registry_key resource:
https://docs.chef.io/resource_registry_key.html,
http://docs.chef.io/release/12-0/dsl_recipe.html#registry-get-values ?

The registry_key_get_values? DSL element seems like a good place to start,
the docs should have examples that clarify the usage.

-Adam

From: Sachin Gupta [mailto:guptasachin1112mrt@gmail.com]
Sent: Thursday, February 26, 2015 10:54 AM
To: chef@lists.opscode.com
Cc: sachin kumar
Subject: [chef] Read windows registry Key values

Hi All,

I am working on a use case where I need to read two registry key values and
compare there data in a recipe

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

both are having a value name(ComputerName) and value data(may be same or
different). I need to compare there value data.

Do I need to write like this:; or some other better way??

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, access) do |reg|
reg.each{|name, value, keys | compName = keys}
end
Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, access) do |reg|
reg.each{|name, value, keys | compNameActive = keys}
end

Any idea??

Thanks & Regards,
Sachin Gupta


#3

Thanks Adam for the useful links.

I am trying to execute this code from a recipe to get the values of registry

require ‘win32/registry’

keynameComp=
"SYSTEM\CurrentControlSet\Control\computername\computername"
keynameActive=
"SYSTEM\CurrentControlSet\Control\computername\activecomputername"
compName = ""
compNameActive = ""
access =Win32::Registry::KEY_ALL_ACCESS

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, KEY_READ) do |reg|
reg.each{|name, value, keys | compName = keys}
end

::Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, KEY_READ) do |reg|
reg.each{|name, value, keys | compNameActive = keys}
end

I am getting error messages as “[2015-03-02T09:52:32+00:00] FATAL:
NameError: uninitialized constant Chef::Win32::Registry::KEY_ALL_ACCESS”

Would like to know, do I need to include any other gem?

Thanks & Regards,
Sachin Gupta

On Fri, Feb 27, 2015 at 2:59 AM, Adam Edwards adamed@getchef.com wrote:

Sachin, have you looked at the docs for the registry_key resource:
https://docs.chef.io/resource_registry_key.html,
http://docs.chef.io/release/12-0/dsl_recipe.html#registry-get-values ?

The registry_key_get_values? DSL element seems like a good place to start,
the docs should have examples that clarify the usage.

-Adam

From: Sachin Gupta [mailto:guptasachin1112mrt@gmail.com]
Sent: Thursday, February 26, 2015 10:54 AM
To: chef@lists.opscode.com
Cc: sachin kumar
Subject: [chef] Read windows registry Key values

Hi All,

I am working on a use case where I need to read two registry key values
and compare there data in a recipe

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

both are having a value name(ComputerName) and value data(may be same or
different). I need to compare there value data.

Do I need to write like this:; or some other better way??

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, access) do |reg|
reg.each{|name, value, keys | compName = keys}
end
Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, access) do |reg|
reg.each{|name, value, keys | compNameActive = keys}
end

Any idea??

Thanks & Regards,
Sachin Gupta


#4

Hi Adam,

I am already having windows gems installed on my machine

C:\Users\sachkkum\chef-repo>gem list | grep win32
win32-api (1.5.1 universal-mingw32)
win32-dir (0.4.5)
win32-event (0.6.1)
win32-ipc (0.6.1)
win32-mmap (0.4.0)
win32-mutex (0.4.1)
win32-process (0.7.3)
win32-service (0.8.2)
win32console (1.3.2 x86-mingw32)

would like to know , do I need to add any other gem to get rid of this error
"[2015-03-02T09:52:32+00:00] FATAL: NameError: uninitialized constant
Chef::Win32::Registry::KEY_ALL_ACCESS"

Thanks
Sachin

On Mon, Mar 2, 2015 at 3:59 PM, Sachin Gupta guptasachin1112mrt@gmail.com
wrote:

Thanks Adam for the useful links.

I am trying to execute this code from a recipe to get the values of
registry

require ‘win32/registry’

keynameComp=
"SYSTEM\CurrentControlSet\Control\computername\computername"
keynameActive=
"SYSTEM\CurrentControlSet\Control\computername\activecomputername"
compName = ""
compNameActive = ""
access =Win32::Registry::KEY_ALL_ACCESS

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, KEY_READ) do |reg|
reg.each{|name, value, keys | compName = keys}
end

::Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, KEY_READ) do
|reg|
reg.each{|name, value, keys | compNameActive = keys}
end

I am getting error messages as “[2015-03-02T09:52:32+00:00] FATAL:
NameError: uninitialized constant Chef::Win32::Registry::KEY_ALL_ACCESS”

Would like to know, do I need to include any other gem?

Thanks & Regards,
Sachin Gupta

On Fri, Feb 27, 2015 at 2:59 AM, Adam Edwards adamed@getchef.com wrote:

Sachin, have you looked at the docs for the registry_key resource:
https://docs.chef.io/resource_registry_key.html,
http://docs.chef.io/release/12-0/dsl_recipe.html#registry-get-values ?

The registry_key_get_values? DSL element seems like a good place to
start, the docs should have examples that clarify the usage.

-Adam

From: Sachin Gupta [mailto:guptasachin1112mrt@gmail.com]
Sent: Thursday, February 26, 2015 10:54 AM
To: chef@lists.opscode.com
Cc: sachin kumar
Subject: [chef] Read windows registry Key values

Hi All,

I am working on a use case where I need to read two registry key values
and compare there data in a recipe

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

both are having a value name(ComputerName) and value data(may be same or
different). I need to compare there value data.

Do I need to write like this:; or some other better way??

Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameComp, access) do |reg|
reg.each{|name, value, keys | compName = keys}
end
Win32::Registry::HKEY_LOCAL_MACHINE.open(keynameActive, access) do |reg|
reg.each{|name, value, keys | compNameActive = keys}
end

Any idea??

Thanks & Regards,
Sachin Gupta