出于安全考虑,注册表的一些重要键值默认受到系统的权限保护,即使我们以管理员身份运行“注册表编辑器”也没有访问的权限。那么该如何更方便地对这些键值进行访问呢?下面笔者介绍一些实用的方法。
文|俞木发
一、注册表权限备份和恢复
因为要对这些特殊键值进行访问,主要的方法就是对其键值权限进行更改,所以为了避免更改权限后造成不可预知的错误,在操作之前要对这些键值进行备份。
1.查看权限
对于受保护的键值,实际上是只有系统内置的SYSTEM账户有完全控制的权限,比如[HKEY_LOCAL_MACHINESAMSAM](保存本地账户信息键值),右击该键值选择“权限”,在组和用户列表中可以看到,Administrators组账户没有权限,只有SYSTEM账户有完全控制权限(图1)。
2.设置备份命令
既然只有SYSTEM账户才有权限访问,因此键值的备份也需要使用SYSTEM账户来进行操作。我们可以使用创建任务计划的方式实现备份。以管理员身份启动命令提示符,输入并执行命令“schtasks/create/sc minute/mo 60/tn"backup"/tr"reg export HKEY_LOCAL_MACHINESAMSAM X:SAM.reg"/ru SYSTEM/RL HIGHEST”,这样会创建一个名为“backup”的任务(图2)。
展开全文
3.运行备份任务
打开任务计划窗口,在任务列表中就可以看到创建的“back”任务。双击打开其属性窗口,可以看到它运行的账户是SYSTEM(通过schtasks命令行参数“/ru SYSTEM”配置),并且“使用最高权限运行”(通过schtasks参数“/RL HIGHEST”配置)(图3)。大家也可以使用类似方法来创建自己需要的命令行。
在任务列表右击“backup”并选择“运行”,这样完成任务的执行后就可以在X:看到备份好的sam.reg,打开后即可看到其中键值的内容(图4)。
4.导入恢复
如果在修改键值后出现错误,那么只要将图2中的“reg export”更改为“reg import”,同上在计划任务中运行指定的任务即可完成导入了。不要直接运行命令行或者双击reg文件,因为没有导入权限。
二、修改键值访问权限
如前言所述,一些特殊键值受到系统的权限保护,在完成上述的备份操作后就可以通过编辑权限的方法实现访问。比如需要打开[HKEY_LOCAL_MACHINESAMSAM]下面的子健,查看系统内置的账户信息,我们就可以使用下面的方法。
方法1:直接修改权限
在图1所示的界面中,选择Administrators组,然后勾选“完全控制”权限,点击“确定”后退出。按F5键刷新,现在再次展开上述键值就可以看到下面子健的内容了,按提示展开需要的键值查看账户信息即可(图5)。
方法2:regini命令行编辑权限
如果需要对远程电脑操作,或者自动完成对这类注册表权限的更改,还可以借助命令行。还是以上述键值的操作为例。
先启动记事本程序并输入“HKEY_LOCAL_MACHINESAMSAM[1]”(“1”表示完全控制权限),保存为1.ini,放置在“X:”下备用。接着再以管理员身份启动命令提示符,输入并执行命令“regini x:1.ini”,完成后就可以授予Administrators组账户对1.ini中指定键值有完全控制的权限了。如果需要编辑其他权限,可以执行命令“regini/?”查看其他数字的含义(图6)。
方法3:直接以SYSTEM身份运行regedit.exe
在Windows 10/11中,权限是可以继承的,既然只有SYSTEM账户有完全控制的权限,那么我们就可以使用SYSTEM身份运行regedit.exe,这样就可以拥有查看和修改键值的权限了。
先将下载的psexec.exe放置在D:备用,接着以管理员身份启动命令提示符,输入并执行命令“psexec-s-i regedit.exe”,启动的regedit.exe运行身份即为SYSTEM账户,可以打开任务管理器查看到(图7)。这样我们无需更改权限设置就可以访问任何受保护的键值了。 CF
原文刊登于2022 年 12月1 日出版《电脑爱好者》第 23 期
END
更多精彩,敬请期待……
特别声明
本文仅代表作者观点,不代表本站立场,本站仅提供信息存储服务。