我试图获得安装在Windows服务器上的程序版本,我希望它作为配方中的变量。
基本上我试图找到版本,如果它不是我想要的,它将被删除,并将安装正确的程序版本。
我无法找到获得该版本的方法。
我想要的版本是Datadog代理。
答案 0 :(得分:0)
在实现代码之前,您需要使用“regedit”在Widows“registry”中查看并找到该软件的确切注册表项值。
以下示例显示了如何获取“Internet Explorer”的版本号。
还建议具备Ruby数组和哈希的基础知识,以理解代码
我使用了registry_key_XXXXX Chef方法。
if registry_key_exists?('HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer')
subkey_array = registry_get_values('HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer')
Chef::Log.info("#{subkey_array}")
reg_key_hash = subkey_array.at(-3)
ver = reg_key_hash.values_at(:data)
ie_version = ver.to_s[2, 2]
Chef::Log.warn("IE version #{ie_version}")
else
Chef::Log.warn("IE Registry key not found")
return
end
注意:对于Windows 32位和64位
,注册表项可能会有所不同