厨师多种条件

时间:2017-11-15 22:03:37

标签: windows powershell chef

我有以下的chef / powershell代码:

 * powershell_script[Configure Registry Keys] action run (skipped due to not_if)

然而,当我运行它时,它无法运行:

{{1}}

那是因为其中一个键存在但其他两个键不存在。

我想要发生的是,如果其中任何一个不存在,就会创建密钥。似乎有多个not_ifs,如果它们中的任何一个导致$ true,则跳过它。

我想要的是,如果他们中的任何一个返回$ false然后执行。

我试图将not_if切换为only_if,但似乎有相同的问题(只是反过来)

那么如何将多个not_if或only_if语句连接在一起,以便它们都必须返回$ false(或者所有$ true - 取决于是否使用了only_if)

希望这是有道理的,但如果没有,请告诉我:)。

1 个答案:

答案 0 :(得分:2)

以下是对任何不存在的测试:

not_if "$Name=(Get-ItemProperty 'HKLM:\\Software\\Microsoft\\Microsoft SQL Server\\MSSQL14.MSSQLSERVER\\MSSQLServer').PSObject.Properties.Name; $Name -contains 'DefaultData' -and $Name -contains 'DefaultLog' -and $Name -contains 'BackupDirectory'"