标题: [注册表类] bat如何更改注册表所有者 [打印本页]
作者: hentai87 时间: 2017-2-2 16:44 标题: bat如何更改注册表所有者
renini只能设置权限
secedit /configure /db test.sdb /cfg test.inf /log test.log也不行
SetACL 也不行- //1------secedit-----------
- @echo off
- rem 设置"HKEY_LOCAL_MACHINE\SOFTWARE\test"的所有者为:Everyone
- >>test.inf echo.[Version]
- >>test.inf echo.Signature = "$Chicago$"
- >>test.inf echo.
- >>test.inf echo.[Registry Keys]
- >>test.inf echo."MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree", 0, "O:WD"
- secedit /configure /db test.sdb /cfg test.inf /log test.log
- del test.*
- pause
-
-
- //2------SetACL-----------
- whoami /user >%temp%\test.txt
- for /f "delims=" %%i in (%temp%\test.txt) do set last=%%i
- for /f "delims=S tokens=2" %%i in ('echo %last%') do set SID=S%%i
- SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree" -ot reg -actn setowner -ownr "n:%SID%;s:y"
- SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree" -ot reg -actn ace -ace "n:administrators;p:full"
复制代码
其他办法不知道了, 也没能搜到
具体就是把这个操作用bat实现 "注册表-右键单击某个key-权限-高级-所有者"
然后我也搜索了, 然后折腾了一下午,没能搞定
作者: CommandBatCmd 时间: 2017-2-2 17:41
本帖最后由 CommandBatCmd 于 2017-2-5 13:23 编辑
回复 1# hentai87
把注册表项的修改权限已加入到失败的原因中考虑。
补充说下
你用的这些命令有些错误,不能修改与添加用户为:Everyone
获取SID应使用:whoami.exe /USER /SID
添加用户为Everyone应使用:-ace "n:everyone;p:full"
作者: wskwfkbdn 时间: 2017-2-5 09:10
regini命令
作者: hentai87 时间: 2017-2-6 12:26
回复 3# wskwfkbdn
regini命令只能设置权限
作者: CommandBatCmd 时间: 2017-2-6 21:40
回复 4# hentai87
如果以下注册表项的所有者中没有“Everyone”
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
使用regini命令操作以下注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree [9]
会删除其他所有者,再把自己“Everyone”写入到所有者中。
只是起不到,把自己“Everyone”加入到所有者的队列中的效果。
使用whoami与SetACL配合,可以达到目的。
由于SetACL对不存在或禁止访问的注册表项,会操作失败,所以最好先做个判断。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |