[Summary] The privilege problem of registry key value and the method how to promote privilege in Windows 7

在我们解决Windows系统问题或者对系统的某些功能进行设置的时候,经常会需要用到注册表编辑器对注册表键值进行修改。

但是如果注册表键值是被其他软件更改的,往往也会将权限一起更改。

这样当我们对注册表进行修改的时候,就会遇到“拒绝访问”或者“删除项时出错”的提示。

如果遇到这种问题,我们就需要向该注册表中添加权限甚至夺取所有者。

关于通过注册表编辑器对注册表键值修改的方法以及获取完全控制权限的方法,之前Felix已经发过一篇文章。大家可以通过下面的链接查看具体的操作方法。

http://social.answers.microsoft.com/Forums/zh-CN/w7repairzhcn/thread/65b0c4cc-c63c-44d8-88c5-0f4066152e7e

但是能够添加权限的前提,是我们要有添加权限与夺取所有者的权限。如果我们连这个权限都没有,那该怎么办?

这个时候我们就该用到一些实用小工具了。

我们以HKLM\SYSTEM\ControlSet001\Enum\USB这段键值举例来说。

在Windows XP系统中,需要删除该键值下面的项来清理在计算机中U盘的使用记录。

但是在Windows 7系统中,我们使用同样的方法就会发现,在删除这些项的时候,会遇到“删除项时出错”的提示。

在查看这些项的权限的时候,会发现只有SYSTEM这个账户有“完全控制”的权限,其他账户都只有“读取”的权限。

在给其他账户添加权限的时候,会遇到拒绝访问的提示,如图所示:

所以如果想要对该键值进行修改,就需要获取SYSTEM权限。

这种情况下,我们就可以借助PsExec这个实用工具来解决问题。

PsExec 是一个轻型的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。PsExec 最强大的功能之一是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。

我们可以根据下面链接下载PsExec并查看该工具的使用方法与具体的参数。

http://technet.microsoft.com/zh-cn/sysinternals/bb897553.aspx

要使用PsExec获取注册表编辑器的SYSTEM权限,可以根据下面的步骤来实现。

我们需要将下载的psexec.exe放到C:\Windows\System32这个路径下。

然后在开始菜单的搜索框中输入cmd,右键点击cmd.exe图标并选择“以管理员身份运行”来打开命令提示符。

在光标闪动处输入:psexec.exe -i -d -s regedit.exe,如图所示:

点击回车之后,就会以System权限打开注册表编辑器了。

之前无法删除的项也可以正常删除了。

再最后还是要强调一下,如果我们对想要修改的注册表并不熟悉,无法确定修改之后是否会发生其他问题,那么在修改之前,一定要将该项注册表键值导出作为备份。

一旦修改之后发生问题,可以参考之前导出的键值,将键值恢复到修改之前的状态。

由于我们对此类注册表键值没有修改权限,所以无法导入之前备份的注册表键值。

我们秉承客户至上的服务理念。如果您对微软工程师在论坛中的服务有任何 表扬、批评或投诉 ,请通过电子邮件(*** 因为隐私原因删除电子邮件地址 ***)告诉我们以便我们提供更优质的服务。Microsoft Answers欢迎您!
敬请注意:
1、提交表扬和投诉时,请您在邮件中标明原帖URL地址和该工程师的显示名,以便我们进行追踪。
2、此Email 不是 技术支持信箱。如果您有技术类问题,请通过论坛发帖的方式提出,会有工程师、MVP和论坛网友为您提供帮助。
3、我们 不会 在电子邮件中直接回复技术问题,关于技术问题的电子邮件,我们会根据电子邮件的内容帮助您在论坛中发一个新帖并在该帖中进行回复。 您发邮件给我们的同时即意味着您已同意我们将邮件内容转发在论坛中 ,敬请理解。(由于增加了中间环节,此类问题的总体回复速度可能会比您直接发帖要慢。)
4、我们在论坛中的回复时间一般在一个工作日,如果您的问题比较紧急,我们建议您选用微软电话技术支持服务,800-820-3800/ 400-820-3800/021-96081318。