我有下面的exec资源,用于安装窗口服务.
我希望它只在未安装窗口服务时执行.所以我使用onlyif命令,但命令不起作用.它一直在运行安装:
exec { "install-${target_path}/${binary_name}": command => "${installUtil_filepath} /i /servicename=\"${service_name}\" /displayname=\"${display_name}\" /description=\"${description}\" \"${target_path}\\${binary_name}\"",onlyif => "if((Get-Service \"${service_name}\" -ErrorAction SilentContinue).DisplayName -eq ${display_name}) { exit 1 } else { exit 0 }",logoutput => true,provider => powershell,}
这很有效
if(Get-Service \"${service_name}\") { exit 1 } else { exit 0 }