标题: [注册表类] 用SetACL修改注册表项权限,结果是增加了一项,老师看看还缺少哪些参数?谢谢! [打印本页]
作者: Shuye 时间: 2023-3-8 03:45 标题: 用SetACL修改注册表项权限,结果是增加了一项,老师看看还缺少哪些参数?谢谢!
本帖最后由 Shuye 于 2023-3-12 18:37 编辑
追加提问:
如果只想更改 Administrators 的“继承”和“权限‘,其他主体的“继承”都不改动,
参数该怎么设置?之后又怎么恢复?
====================================================
以下是原来的问题,感谢 buyiyang 兄给出了”修改“及”恢复“的代码!(见6楼、9楼)
注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder
主体中原本已有一项 Administrators “读取”
试图将其改为“完全控制”:
Set ff=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder
Start /wait /b CMD /c SetACL -on "%ff%" -ot reg -actn setowner -ownr "n:Administrators"
Start /wait /b CMD /c SetACL -on "%ff%" -ot reg -actn ace -ace "n:Administrators;p:full"
结果不是修改原来“读取”的那项,而是增加了一项 Administrators “完全控制”,
老师看看错在哪?还缺少哪些参数?
谢谢!
作者: buyiyang 时间: 2023-3-8 12:00
第三条尝试改为- Start /wait /b CMD /c SetACL -on "%ff%" -ot reg -actn mod -ace "n:Administrators;p:full"
复制代码
作者: Shuye 时间: 2023-3-9 00:48
回复 2# buyiyang
谢谢 buyiyang 兄!不过,没通过,报错:
ERROR in command line: Invalid action specified: mod!
命令行错误:指定的操作无效:mod!
作者: holley 时间: 2023-3-9 08:55
本帖最后由 holley 于 2023-3-9 08:57 编辑
回复 1# Shuye
是不是还要配置 继承属性?- Inheritance flags for the ACE. This may be a comma-separated list containing the following:
-
- so
- sub-objects
- sc
- sub-containers
- np
- no propagation
- io
- inherit only
- Example: ‘io,so’
复制代码
试试:- Start /wait /b CMD /c SetACL -on "%ff%" -ot reg -actn ace -ace "n:Administrators;p:full;m:grant;i:so,sc"
复制代码
作者: Shuye 时间: 2023-3-9 13:37
本帖最后由 Shuye 于 2023-3-9 13:39 编辑
回复 4# holley
谢谢 holley 兄!
不过,没达到效果。
原来“读取”的那项还是没改动,还是增加了一项 Administrators “完全控制”。
作者: buyiyang 时间: 2023-3-9 17:47
本帖最后由 buyiyang 于 2023-3-9 18:12 编辑
因为administrators的权限是继承而来的,所以无法更改,要先将权限改为显式权限然后才能更改- SetACL -on "%ff%" -ot reg -actn setprot -op "dacl:p_c;sacl:p_c" -actn ace -ace "n:Administrators;p:full;m:set;i:so,sc"
复制代码
说明如下:- Protection
- Controls the flag ‘allow inheritable permissions from the parent object to propagate to this object’:
- nc
- Do not change the current setting.
- np
- Object is not protected, i.e. inherits from parent.
- p_c
- Object is protected, ACEs from parent are copied.
- p_nc
- Object is protected, ACEs from parent are not copied
复制代码
作者: Shuye 时间: 2023-3-10 00:33
回复 6# buyiyang
好办法,测试成功,谢谢 buyiyang 兄!
作者: Shuye 时间: 2023-3-10 00:37
如果想恢复他们的“继承”,参数该怎么设置?
谢谢!
作者: buyiyang 时间: 2023-3-10 12:35
回复 8# Shuye
恢复- SetACL -on "%ff%" -ot reg -actn setprot -op "dacl:np;sacl:np" -actn clear -clr "dacl,sacl"
复制代码
作者: Shuye 时间: 2023-3-11 02:58
回复 9# buyiyang
高手,完全复原,再次感谢 buyiyang 兄!
作者: buyiyang 时间: 2023-3-12 22:20
你的新需求应该要先取消父项中Administrators的propagate- SetACL -on "父项" -ot reg -actn setowner -ownr "n:Administrators" -actn ace -ace "n:Administrators;p:read;i:np"
- SetACL -on "%ff%" -ot reg -actn ace -ace "n:Administrators;p:full;m:grant;i:so,sc"
复制代码
恢复- SetACL -on "父项" -ot reg -actn ace -ace "n:Administrators;p:read;i:so,sc" -actn rstchldrn -rst "dacl,sacl"
复制代码
作者: Shuye 时间: 2023-3-13 13:58
回复 11# buyiyang
测试通过,谢谢 buyiyang 兄!
作者: Shuye 时间: 2023-3-13 14:13
因为administrators的权限是继承而来的,所以无法更改,要先将权限改为显式权限然后才能更改说明如下:
buyiyang 发表于 2023-3-9 17:47
还有个疑惑:
为什么把子项的“继承”全部改掉时,不需要先取消父项中 Administrators 的 propagate,(见6楼、7楼)
而只改动 Administrators 这一项时却要先取消?
作者: buyiyang 时间: 2023-3-15 11:20
回复 13# Shuye
因为子项继承的主体无法修改或删除,要么直接禁用子项的从父项继承(取消子项的所有主体的继承关系),要么从父项修改每个主体的propagation
作者: Shuye 时间: 2023-3-16 01:51
回复 14# buyiyang
谢谢 buyiyang 兄!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |