批量not_if后卫"行动运行"而不是"跳过"

时间:2017-12-08 16:08:24

标签: powershell chef

我在配方中有一个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;?

此致

1 个答案:

答案 0 :(得分:1)

这是因为你的not_if语句使用双引号。尝试使用花括号或单引号。请注意同样使用单引号的Powershell逻辑运算符:

not_if '(Get-ItemProperty HKLM:\\System\\CurrentControlSet\\Control\\Lsa).DisableDomainCreds -eq "1"'