2017-12-07 8 views
0

요리사 레서피를 만들고 registry_key 리소스를 사용하여 레지스트리 키를 만들거나 업데이트하려고합니다. 이 필요한 경우 내가요리사의 registry_data_exists 리소스에 Regex 사용 레시피

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 데이터 1.

not_if { registry_data_exists?('HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon',{ name: 'SCRemoveOption', type: :string, data: '([1-3])'} ,:x86_64) } 

답변

0

(이전의 노력에 대한 사과) 내가 더 잘 루비/요리사에 비해 PS 구문을 알고 난 powershell_script 자원을 선택했다

으로 업데이트해야합니다. 나는 다음과 같이 활성화/비활성화 된 보안 정책을 확인하는 데 사용 : -

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 

은 아마 당신이 배열이나 값으로 작동하도록 적용 할 수 있습니다.

+0

Craig, 귀하의 제안에 감사드립니다. 데이터의 존재 여부를 확인해야합니다. –