使用SetACL获取注册表项当前所有者及权限的语法是什么?
问题描述
你在批处理文件中使用Helge Klein开发的SetACL工具,计划先修改注册表项的所有者和权限以编辑数值,操作完成后恢复为原始的所有者和权限,需要确认获取注册表项当前所有者及权限的正确SetACL语法。
具体需求与操作流程
- 待实现的前置操作
- 获取指定注册表项的当前所有者
- 获取指定注册表项当前的Administrator权限配置
- 已验证可行的修改操作
- 非递归将注册表项所有者修改为Administrators
- 非递归将管理员权限修改为完全控制
- 编辑该注册表项下的数值
- 操作完成后的恢复需求
- 非递归用原始权限恢复管理员权限
- 非递归用原始所有者恢复注册表项所有者
本次示例操作的注册表项为:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell
现有代码片段
REM 伪代码部分(待补充语法) owner = $(SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn ?) adminPerms = $(SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn ?) REM 已知可运行代码 SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn setowner -ownr n:Administrators SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn ace -ace "n:Administrators;p:full" REG IMPORT "System config.reg" REM 待验证恢复代码 SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn setowner -ownr n:%owner% SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn ace -ace "n:Administrators;p:%adminPerms%"
解答
SetACL中查询类操作的动作为list,搭配对应的过滤参数即可提取你需要的信息:
- 获取注册表项当前所有者的语法:
SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn list -lst "o:f"
该命令仅输出目标注册表项的所有者完整信息,批处理场景下可通过for /f循环解析输出结果,将所有者账号名存入变量待用。
- 获取Administrator权限配置的语法:
SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn list -lst "f:tab;d:n"
该命令以表格格式输出目标注册表项的所有权限条目,不包含子项内容,你可以过滤输出结果中Administrators对应的权限字段值,存入变量即可用于后续恢复。
更稳妥的备选方案
如果不需要单独提取所有者和权限字段,直接使用SetACL自带的备份/还原功能容错率更高,无需手动解析输出:
- 备份所有者和权限到文件:
SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn backup -bckp "reg_perm_backup.tmp"
- 操作完成后恢复原始配置:
SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn restore -bckp "reg_perm_backup.tmp"
恢复操作自动处理所有者和权限配置,无需额外传参,适配所有账号格式场景。
内容的提问来源于stack exchange,提问作者Mario Palumbo
相关产品推荐
相关产品推荐

