inspec/test/cookbooks/os_prepare/recipes/registry_key.rb
Christoph Hartmann 6f6f3985a6 fix #1131 circumvent bug in powershell where string are not properly handled
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
2017-04-07 10:57:02 +02:00

95 lines
2.6 KiB
Ruby

# encoding: utf-8
# author: Alex Pop
# author: Christoph Hartmann
#
# change a few Windows registry keys for testing purposes
if node['platform_family'] == 'windows'
registry_key 'HKLM\System\Test' do
values [{
:name => '',
:type => :string,
:data => 'test'
},{
:name => 'string value',
:type => :string,
:data => nil
},{
:name => 'binary value',
:type => :binary,
:data => 'dfa0f066'
},{
:name => 'dword value',
:type => :dword,
:data => 0
},{
:name => 'qword value',
:type => :qword,
:data => 0
},{
:name => 'multistring value',
:type => :multi_string,
:data => ['test', 'multi','string','data']
},{
:name => 'super\/escape',
:type => :string,
:data => '\/value/\\'
},{
:name => 'key.with.dot',
:type => :string,
:data => 'value.with.dot'
}]
recursive true
action :create
end
registry_key 'HKLM\Software\Policies\Microsoft\Windows\EventLog\System' do
values [{ name: 'MaxSize', type: :dword, data: 67_108_864 }]
recursive true
action :create
end
registry_key 'HKLM\System\CurrentControlSet\Control\Session Manager' do
values [{ name: 'SafeDllSearchMode', type: :dword, data: 1 }]
recursive true
action :create
end
registry_key 'HKLM\System\CurrentControlSet\Services\LanManServer\Parameters' do
values [{ name: 'NullSessionShares', type: :multi_string, data: [] }]
recursive true
action :create
end
registry_key 'HKLM\Software\Policies\Microsoft\Internet Explorer\Main' do
values [{ name: 'Isolation64Bit', type: :dword, data: 1 }]
recursive true
action :create
end
registry_key 'HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' do
values [{ name: 'MinEncryptionLevel', type: :dword, data: 3 }]
recursive true
action :create
end
registry_key 'HKLM\System\CurrentControlSet\Control\Lsa\MSV1_0' do
values [{ name: 'NTLMMinServerSec', type: :dword, data: 537_395_200 }]
recursive true
action :create
end
# used to verify pattern test
::Chef::Recipe.send(:include, Chef::Mixin::PowershellOut)
cmd = powershell_out!('Get-WmiObject -Class Win32_UserAccount | % { $_.SID } | ConvertTo-Json')
sids = JSON.parse(cmd.stdout)
sids.each { |sid|
registry_key "HKEY_USERS\\#{sid}\\Software\\Policies\\Microsoft\\Windows\\Installer" do
values [{ name: 'AlwaysInstallElevated', type: :dword, data: 0 }]
recursive true
ignore_failure true # ignore users that have not been logged in
action :create
end
}
end