我在配方中有一个PS脚本,如果启用某个安全策略(导致this问题),导致厨师运行失败。
所以我添加了一个not_if后卫
powershell_script 'scheduled-tasks' do
guard_interpreter :powershell_script
cwd 'C:\Temp'
code <<-EOH
schtasks.exe /create ...
schtasks.exe /create ...
EOH
not_if "(get-itemproperty 'HKLM:\\System\\CurrentControlSet\\Control\\Lsa').DisableDomainCreds -eq '1'"
end
我正在使用Test-Kitchin,VirtualBox和Windows VM。运行powershell命令&#39; getitemproperty ...&#39;返回True表示它已启用,因此我不希望脚本运行,并且由于not_if&#39;而希望Chef说“跳过”。
然而,在终端输出中,它表示&#34;动作运行&#34;。
厨师跑不会失败所以脚本无法运行,但为什么不说&#34;跳过&#34;?
此致
答案 0 :(得分:1)
这是因为你的not_if语句使用双引号。尝试使用花括号或单引号。请注意同样使用单引号的Powershell逻辑运算符:
not_if '(Get-ItemProperty HKLM:\\System\\CurrentControlSet\\Control\\Lsa).DisableDomainCreds -eq "1"'