![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-04 21:40 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,266 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]如何用setacl在批处理中修改注册表的权限呢? |
| 可打印版本 6,218 / 22 |
| 第1楼 gene771771 | 发表于 2006-11-17 09:19 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
[原创]如何用setacl在批处理中修改注册表的权限呢? 我用setacl2.0.2.0该注册表权限的时候遇到问题了。。。
我英文不好,作者写的语法我看不懂,麻烦帮我解释一下下吧。。。 比如我想要改 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" 和“HKEY_CLASSES_ROOT\.exe” 这个两个键值为只读,该怎么写呢? 这是setacl的下载地址: http://sourceforge.net/project/showfiles.php?group_id=69165&package_id=68032 谢谢。 这是我试着写的一个 @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 ] |
|
| 第2楼 ronin | 发表于 2006-11-30 10:52 |
| 中级用户 发帖 111 积分 421 | |
|
setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry /grant everyone /read
参考下 |
|
| 第3楼 gene771771 | 发表于 2006-11-30 11:19 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
呵呵 非常谢谢你,但是你说的是0.9.80,我用的是setacl2.0.2.0,语法修改很多了,在专研了一天英文后我自己作出来了。
|
|
| 第4楼 ronin | 发表于 2006-12-01 03:58 |
| 中级用户 发帖 111 积分 421 | |
|
能不能讲你的代码提供下,这几天为这个头疼的很
|
|
| 第5楼 gene771771 | 发表于 2006-12-01 04:42 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
我把源码发上来 我把源码发上来,测试环境 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 安装 echo 卸载 (恢复系统默认) echo 退出 echo. echo 提示:请务必确定你的计算机无毒。 echo. set /p name= 请输入 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 ] |
|
| 第6楼 ronin | 发表于 2006-12-03 23:33 |
| 中级用户 发帖 111 积分 421 | |
|
看了你这个代码,和我的要求不一样,我打算用用批处理来限制用户对一些文件不能删除,我用0.9版本,都是只能控制这个文件只读不能修改,但没办法不能删除,gene771771有没有这方面的经验,可以控制文件夹属性只读,就是里面全部文件不能删除,但这个要求是在system32里面的一个文件要保护
|
|
| 第7楼 vkill | 发表于 2006-12-04 01:54 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
我好用的0.87,汗~下个新的回去看看
|
|
| 第8楼 gene771771 | 发表于 2006-12-07 02:03 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
TO ronin 我研究了setacl对dacl列表的修改,它还有防止文件删除的功能,其实原理和CACLS命令是一个原理,但是好像没有防止注册表键值不能删除的功能吧。。。
|
|
| 第9楼 0401 | 发表于 2006-12-07 05:55 |
| 中级用户 发帖 88 积分 435 | |
|
记得深山红叶也有用SETACL来修改IE的某些注册表项的权限的,SETACL命令行好复杂,没去研究过。
|
|
| 第10楼 tathatayx | 发表于 2006-12-07 08:32 |
| 初级用户 发帖 11 积分 23 来自 四川成都 | |
|
高手论道,我辈茫然!
但提高大啊! |
|
| 第11楼 ronin | 发表于 2006-12-07 22:32 |
| 中级用户 发帖 111 积分 421 | |
|
深山红叶使用SETACL0.98版本,基本上实现功能和gene771771一样,2.0的复杂很多
|
|
| 第12楼 ronin | 发表于 2006-12-12 23:26 |
| 中级用户 发帖 111 积分 421 | |
|
setacl和cacls设置了文件任意人只读,但只是不能修改,可以替换和删除
|
|
| 第13楼 gene771771 | 发表于 2006-12-13 02:32 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
Originally posted by ronin at 2006-12-12 10:26: 用CACLS可以实现,可以不用它。它语法比较难操作。 |
|
| 第14楼 rubik | 发表于 2007-01-06 01:06 |
| 初级用户 发帖 35 积分 102 | |
|
呵呵 注册表的权限很好改的,哪有这么麻烦,一条命令就够了。
看来是不是我也可以来写个“软件”了 |
|
| 第15楼 godkuku | 发表于 2007-11-20 15:40 |
| 新手上路 发帖 2 积分 4 | |
|
同样遇到这个问题了呢....
setacl.exe -on "c:\1.txt" -ot "file" -ace "n:admins;p:read;m:deny;w:dacl" 例如此行,不管c:\下是否存在1.txt都会显示SetACL finished successfully,操作成功。我也是啃了两天的英文。快脑残掉啦都 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |