gpt4 book ai didi

windows - 使用 puppet exec 检测是否已安装 Windows 服务

转载 作者:可可西里 更新时间:2023-11-01 14:23:13 24 4
gpt4 key购买 nike

我有下面的 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 }

最佳答案

为什么要先用服务名称检索服务,然后还要比较显示名称?您可能可以省略该检查...

此外,您不想在安装服务时使用 exit 0 退出,否则使用 1 退出吗?

试试这个:

onlyif    => "if(Get-Service ${service_name}) { exit 0 } else { exit 1 }",

关于windows - 使用 puppet exec 检测是否已安装 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37702883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com