windows - 告诉 Puppet 仅在注册表项不存在时运行安装

标签 windows automation registry installation puppet

我编写了 list ,用于安装 .exe 并在每次安装到新计算机上时对其应用修补程序。

windowsinstaller { 'AppFabric install 1.1 install':     
  software_title  => 'AppFabric 1.1 for Windows Server',
  software_path   => '/Microsoft/AppFabric1.1/WindowsServerAppFabricSetup_x64.exe',
  install_options => ['/i','/SkipUpdates'],
}

windowsinstaller { 'AppFabric 1.1 HotFix install':  
  software_title  => 'Windows Server AppFabric v1.1 CU5 [KB2932678]',   
  software_path   => '/Microsoft/AppFabric1.1/AppFabric1.1-KB2932678-x64-ENU.exe',
  install_options => ['/q','/norestart'],   
  subscribe => Windowsinstaller['AppFabric install 1.1 install']
}

service { 'Remote Registry Service':
  name    => 'RemoteRegistry',
  ensure  => running,
  restart => true,
} 

我试图仅在注册表项不存在时才运行此安装。

使用 puppetlabs 注册表模块,您可以管理 key 、重定向它们以及更改值。

引用:http://puppetlabs.com/blog/module-of-the-week-puppetlabs-registry-windows

不幸的是,我似乎找不到一种方法来简单地检查 key 是否存在,我可以删除它或使用 ensure => Presentensure 确保它存在=> 缺席

由于我无法将资源放入变量中,我发现很难使用条件语句,并且由于 presentabsent 设置键而不是检查它,我我认为我无法将元参数与 registry_key 资源一起使用。

我知道我可以将所有内容包装在 if 语句中并使用自定义事实,但我被告知这不是正确的处理方式。

如果有人有一个在使用此模块或在 puppet 锻造中注册的其他内容之前完成此操作的示例或任何想法,我们将不胜感激。

最佳答案

用户 manbart 在 7 个月前找到了这个问题的答案

Exec onlyif registry value is not present

调用 reg.exe 来查询 exec 资源中的注册表。

关于windows - 告诉 Puppet 仅在注册表项不存在时运行安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886868/

相关文章:

automation - 有哪些带有 API 的实体邮寄服务? (pdf 到已交付的信件)

javascript - 使用 JavaScript 进行自动化单元测试

c++ - 在 64 位和 32 位窗口中读取注册表

c# - 尝试使用 C# 在 Windows 注册表中设置 DWORD 值时出错

windows - 使用 robocopy 复制文件时出现错误 5 (0x00000005) 创建目标目录

c - 如何获取函数的 RAM 和 CPU 使用率?

c# - 通话被被叫方拒绝。 (来自 HRESULT : 0x80010001 (RPC_E_CALL_REJECTED)) 的异常

c++ - 从 C++ 运行 MsiExec.exe? Windows

用于 git 的 Windows 图形用户界面

c++ - MFC slider +编辑+微调模式