我有此方法阻止注册表项并防止用户或恶意软件意外或故意删除或重写
键的示例:
"HKEY_CLASSES_ROOT\Applications\cmd.exe"
"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\cmd.exe"
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\ComSpec"
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\PATHEXT"
ETC。
保护密钥:创建 ac:\protect.txt 文件,内容如下:
HKEY_CLASSES_ROOT\Applications\cmd.exe [2 19]
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\cmd.exe [2 19]
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\ComSpec [2 19]
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\PATHEXT [2 19]
ETC
并执行命令
regini c:\block.txt
问题: 我怎样才能扭转这些变化?
重要的提示:我想要的是一个解决方案,可以通过批处理来自动化该过程(“.bat”用于阻止,“.bat”用于撤消/恢复原始权限)..但首先读取或导出密钥权限以恢复
多谢。
答案1
我怎样才能扭转这些变化?
您可以通过将权限条目设置为[1 17]
管理员完全访问权限和系统完全访问权限来撤消更改。
创建一个文件(例如
unblock.txt
),其内容如下:HKEY_CLASSES_ROOT\Applications\cmd.exe [1 17] HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\cmd.exe [1 17] HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\ComSpec [1 17] HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\PATHEXT [1 17]
unblock.txt
使用以下命令执行脚本,从提升的(管理员)cmd
shell 运行:regini unblock.txt
笔记:
- 该
regini
命令必须从提升的(管理员)shell 运行cmd
,否则它将失败(不会显示任何错误)。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 雷吉尼- 更改注册表权限。
- 如何:使用脚本从命令行更改注册表权限
答案2
您将以相同的方式逆转这些更改 - 只有每行末尾的数字会不同。
所以请好好计划!(我总是建议大家拿笔在纸上画出设计)
1)当您进行阻止时,您必须至少留下一个具有足够未被阻止权限(例如全部权限)的用户/组
2)当你解除阻止时,你必须以有权更改这些注册表项的用户/组身份执行此操作
如果您想知道原始权利(其编号),您可以regdmp
在进行任何更改之前使用。