从 Chef 更改注册表项的权限

从 Chef 更改注册表项的权限

我正在尝试自动化 Jenkins Windows 从属安装,并且需要更改某些密钥的所有者和权限,以便允许管理员用户对某些密钥进行读/写访问。请参阅Jenkins 文档了解详情。

我发现注册表项资源,但其中没有提到如何调整注册表项的实际权限。我不需要创建/读取/更新或删除项 - 只需调整权限。

有没有办法从 Chef 内部做到这一点?或者,如果没有,有没有办法通过 Powershell 脚本做到这一点?

答案1

我将概述权宜之计,以便在这里得到一些结论,但理想情况下需要重构以使用Chef DSC 资源因为这可以管理更深奥的 Windows 功能。感谢@coderanger感谢这个提示。

我最终做的是使用设置ACL执行块中的实用程序如下

设置条目所有者

execute 'update registry entry owner' do
  command 'c:/path/to/SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{76A64158-CB41-11D1-8B02-00600806D9B6}" -ot reg -actn setowner -ownr n:Administrators'
end

设置进入权限

execute 'update registry permissions' do
  command 'c:/path/to/SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{76A64158-CB41-11D1-8B02-00600806D9B6}" -ot reg -actn ace -ace "n:Administrators;p:full'
end

这是为了设置Jenkins Windows 从属注册表项允许远程安装和管理 Jenkins 从属服务。

相关内容