我正在创建一个厨师食谱并尝试使用registry_key资源创建/更新注册表项。我如何使用正则表达式来验证注册表项的存在,并且只在必要时进行更新
registry_key'HKLM\\Software\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon' do
values [{
name: 'SCRemoveOption',
type: :string,
data: '1', }]
# recursive true
action :create
not_if { registry_data_exists?('HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon',{ name: 'SCRemoveOption', type: :string, data: '1' } ,:x86_64) }
end
如果注册表项与数据1或2或3一起存在,则无需udpate,否则registry_key-data应更新为1.
not_if { registry_data_exists?('HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon',{ name: 'SCRemoveOption', type: :string, data: '([1-3])'} ,:x86_64) }
答案 0 :(得分:0)
(先前努力的道歉)
我更喜欢使用powershell_script资源,因为我知道PS语法比ruby / Chef更好。我曾经检查安全策略启用/禁用如下: -
powershell_script 'my_script' do
guard_interpreter :powershell_script
cwd 'C:\Temp'
code <<-EOH
<...set the registry key(s)...>
EOH
not_if '(get-itemproperty HKLM:\\System\\CurrentControlSet\\Control\\Lsa).DisableDomainCreds -eq "1"'
end
也许你可以适应它使用一个或多个数组。