中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]如何用setacl在批处理中修改注册表的权限呢?
<<   [1] [2]  >>   >
作者:
标题: [原创]如何用setacl在批处理中修改注册表的权限呢? 上一主题 | 下一主题
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『楼 主』:  [原创]如何用setacl在批处理中修改注册表的权限呢?

我用setacl2.0.2.0该注册表权限的时候遇到问题了。。。 我英文不好,作者写的语法我看不懂,麻烦帮我解释一下下吧。。。 比如我想要改 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" 和“HKEY_CLASSES_ROOT\.exe” 这个两个键值为只读,该怎么写呢? 这是setacl的下载地址: sourceforge.net ... 谢谢。 这是我试着写的一个 @echo off :again set UpdatePolicy=GPUpdate /Force>nul 2>nul echo 1 setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:grant;w:dacl" -op "dacl:p_c" setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:aud_succ;w:sacl" -op "sacl:p_c" %UpdatePolicy%>nul 2>nul ENDLOCAL pause set UpdatePolicy=GPUpdate /Force>nul 2>nul echo 2 setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:revoke;w:dacl" -op "dacl:p_nc" setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:aud_fail;w:sacl" -op "sacl:p_nc" %UpdatePolicy%>nul 2>nul ENDLOCAL pause goto again 虽然操作成功,但是并没有修改其权限。 [ Last edited by gene771771 on 2006-12-1 at 01:37 PM ]


2006-11-17 09:19
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 2 楼』:  

setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry /grant everyone /read 参考下


2006-11-30 10:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『第 3 楼』:  呵呵

非常谢谢你,但是你说的是0.9.80,我用的是setacl2.0.2.0,语法修改很多了,在专研了一天英文后我自己作出来了。


2006-11-30 11:19
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 4 楼』:  

能不能讲你的代码提供下,这几天为这个头疼的很


2006-12-1 03:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『第 5 楼』:  我把源码发上来

我把源码发上来,测试环境 windows xp sp2 @echo off color 17 mode con: cols=80 lines=40 :Selection set UpdatePolicy=GPUpdate /Force>nul 2>nul echo. echo ******************************************************************************* echo * * echo * 晗 晗 制 造 * echo * * echo ******************************************************************************* echo. echo 声明:病毒免疫工具 Echo. Echo 木马和病毒是通过注册表的自启动项,文件关联,系统服务实现自启动的。 echo 本程序将: echo. echo 设置 注册表隐藏文件键值为只读。 echo 设置 注册表自启动项为只读。 echo 设置 注册表重要文件关联为只读。 echo 设置 注册表所有服务为只读。 echo. echo. echo 请选择需要执行的操作 echo. echo [1] 安装 echo [2] 卸载 (恢复系统默认) echo [3] 退出 echo. echo 提示:请务必确定你的计算机无毒。 echo. set /p name= 请输入[1,2,3] if not errorlevel 1 goto goon cls goto Selection :goon if /i %name%==1 echo.&echo 你选择了 安装&goto install if /i %name%==2 echo.&echo 你选择了 卸载 (恢复系统默认)&goto uninstall if /i %name%==3 echo.&echo 你选择了 退出&goto quit cls goto Selection :install echo. set OP=-ot reg -actn ace -ace "n:everyone;p:read;m:grant;w:dacl" -actn setprot -op "dacl:p_nc" set choice=安装 echo Y|cacls "%USERPROFILE%\「开始」菜单\程序\启动" /C /P everyone:r>nul 2>nul echo Y|cacls "%ALLUSERSPROFILE%\「开始」菜单\程序\启动" /C /P everyone:r>nul 2>nul goto Doit :uninstall echo. set OP=-ot reg -actn ace -ace "n:everyone;p:read;m:revoke;w:dacl" -actn setprot -op "dacl:np" set choice=卸载 echo Y|cacls "%USERPROFILE%\「开始」菜单\程序\启动" /C /P everyone:f>nul 2>nul echo Y|cacls "%ALLUSERSPROFILE%\「开始」菜单\程序\启动" /C /P everyone:f>nul 2>nul goto Doit :Doit echo 修复注册表键值...... rem 修复文件关联 ftype exefile="%%1" %%*>nul 2>nul assoc .exe=exefile>nul 2>nul ftype comfile="%%1" %%*>nul 2>nul assoc .com=comfile>nul 2>nul ftype scrfile="%%1" %/S>nul 2>nul assoc .scr=scrfile>nul 2>nul ftype txtfile=%%SystemRoot%%\system32\NOTEPAD.EXE %%1>nul 2>nul assoc .txt=txtfile>nul 2>nul ftype chm.file="c:\windows\hh.exe" %%1>nul 2>nul assoc .chm=chm.file>nul 2>nul ftype batfile="%%1" %%*>nul 2>nul assoc .bat=batfile>nul 2>nul ftype cmdfile="%%1" %%*>nul 2>nul assoc .cmd=cmdfile>nul 2>nul ftype hlpfile=%%SystemRoot%%\system32\winhlp32.exe %%1>nul 2>nul assoc .hlp=hlpfile>nul 2>nul ftype inffile=%%SystemRoot%%\System32\NOTEPAD.EXE %%1>nul 2>nul assoc .inf=inffile>nul 2>nul ftype inifile=%%SystemRoot%%\System32\NOTEPAD.EXE %%1>nul 2>nul assoc .ini=inifile>nul 2>nul ftype piffile="%%1" %%*>nul 2>nul assoc .pif=piffile>nul 2>nul ftype regedit=regedit.exe %%1>nul 2>nul ftype regfile=regedit.exe "%%1">nul 2>nul assoc .reg=regfile>nul 2>nul rem 修复隐藏文件 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v CheckedValue /t reg_dword /d 1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v DefaultValue /t reg_dword /d 2 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v UncheckedValue /t reg_sz /d 1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v CheckedValue /t reg_dword /d 0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v DefaultValue /t reg_dword /d 0 /f>nul 2>nul rem 修复AppInit_DLLs reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t reg_sz /f>nul 2>nul echo 操作成功结束 echo. echo %choice%病毒免疫工具...... rem HKLM setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" %OP%>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" %OP%>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" %OP%>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX" %OP%>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX" %OP%>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx" %OP%>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v CheckedValue /t reg_dword /d 1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v DefaultValue /t reg_dword /d 2 /f>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" %OP%>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v UncheckedValue /t reg_sz /d 1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v CheckedValue /t reg_dword /d 0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v DefaultValue /t reg_dword /d 0 /f>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" %OP%>nul 2>nul rem HKCU setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx" %OP%>nul 2>nul setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce" %OP%>nul 2>nul rem HKCR setacl -on "hkcr\.exe" %OP%>nul 2>nul setacl -on "hkcr\.com" %OP%>nul 2>nul setacl -on "hkcr\.scr" %OP%>nul 2>nul setacl -on "hkcr\.txt" %OP%>nul 2>nul setacl -on "hkcr\.chm" %OP%>nul 2>nul setacl -on "hkcr\.bat" %OP%>nul 2>nul setacl -on "hkcr\.cmd" %OP%>nul 2>nul setacl -on "hkcr\.hlp" %OP%>nul 2>nul setacl -on "hkcr\.inf" %OP%>nul 2>nul setacl -on "hkcr\.ini" %OP%>nul 2>nul setacl -on "hkcr\.pif" %OP%>nul 2>nul setacl -on "hkcr\.reg" %OP%>nul 2>nul setacl -on "hkcr\exefile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\inifile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\txtfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\comfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\batfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\inffile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\scrfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\chm.file\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\cmdfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\hlpfile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\piffile\shell\open\command" %OP%>nul 2>nul setacl -on "hkcr\regfile\shell\open\command" %OP%>nul 2>nul rem AppInit_DLLs reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t reg_sz /f>nul 2>nul setacl -on "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" %OP%>nul 2>nul echo 操作成功结束 echo. echo 正在更新帐户策略、审核策略...... REM 刷新本地安全策略 %UpdatePolicy%>nul 2>nul echo 操作成功结束 echo. echo. echo 所有操作成功完成! :quit ENDLOCAL echo. echo. title "(*^@^*)"晗晗的QQ:305158720 echo $$$ 晗晗制造,版本1.0 $$$ pause>nul 2>nul [ Last edited by gene771771 on 2007-1-17 at 11:55 PM ]


2006-12-1 04:42
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 6 楼』:  

看了你这个代码,和我的要求不一样,我打算用用批处理来限制用户对一些文件不能删除,我用0.9版本,都是只能控制这个文件只读不能修改,但没办法不能删除,gene771771有没有这方面的经验,可以控制文件夹属性只读,就是里面全部文件不能删除,但这个要求是在system32里面的一个文件要保护


2006-12-3 23:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 7 楼』:  

我好用的0.87,汗~下个新的回去看看


2006-12-4 01:54
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『第 8 楼』:  TO ronin

我研究了setacl对dacl列表的修改,它还有防止文件删除的功能,其实原理和CACLS命令是一个原理,但是好像没有防止注册表键值不能删除的功能吧。。。


2006-12-7 02:03
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
0401
中级用户

带走



积分 435
发帖 88
注册 2005-9-24
状态 离线
『第 9 楼』:  

记得深山红叶也有用SETACL来修改IE的某些注册表项的权限的,SETACL命令行好复杂,没去研究过。


2006-12-7 05:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tathatayx
初级用户





积分 23
发帖 11
注册 2006-11-7
来自 四川成都
状态 离线
『第 10 楼』:  

高手论道,我辈茫然! 但提高大啊!


2006-12-7 08:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 11 楼』:  

深山红叶使用SETACL0.98版本,基本上实现功能和gene771771一样,2.0的复杂很多


2006-12-7 22:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 12 楼』:  

setacl和cacls设置了文件任意人只读,但只是不能修改,可以替换和删除


2006-12-12 23:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『第 13 楼』:  

Originally posted by ronin at 2006-12-12 10:26: setacl和cacls设置了文件任意人只读,但只是不能修改,可以替换和删除
用CACLS可以实现,可以不用它。它语法比较难操作。


2006-12-13 02:32
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
rubik
初级用户





积分 102
发帖 35
注册 2006-3-16
状态 离线
『第 14 楼』:  呵呵

注册表的权限很好改的,哪有这么麻烦,一条命令就够了。 看来是不是我也可以来写个“软件”了


2007-1-6 01:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
godkuku
新手上路





积分 4
发帖 2
注册 2007-11-20
状态 离线
『第 15 楼』:  

同样遇到这个问题了呢.... setacl.exe -on "c:\1.txt" -ot "file" -ace "n:admins;p:read;m:deny;w:dacl" 例如此行,不管c:\下是否存在1.txt都会显示SetACL finished successfully,操作成功。我也是啃了两天的英文。快脑残掉啦都


2007-11-20 15:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: