我正在尝试自动化 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 从属服务。