You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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,搭配对应的过滤参数即可提取你需要的信息:

  1. 获取注册表项当前所有者的语法:
SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\Powershell" -ot reg -actn list -lst "o:f"

该命令仅输出目标注册表项的所有者完整信息,批处理场景下可通过for /f循环解析输出结果,将所有者账号名存入变量待用。

  1. 获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:36:01