无法在Windows 7下删除注册表项:权限不足

时间:2022-02-17 18:51:59
前提:当前在Windows 7 x86 英文旗舰版下使用Administrator帐号操作

简介:我想在电脑上清除所有USB设备的使用记录。在Windows XP时代,可以通过移除设备管理器中USB Root Hub,并在注册表中删除HKLM\System\CurrentControlSet\Enum\USB,删除该项目下所有VID_****&PID_****项即可。

目前问题:在Windows 7下该方法不好用了。当删除注册表项时会弹出提示“Cannot delet VID_****&PID_****: Error while deleting key”。起初我以为是权限问题,就右击该注册表项选择Permissions,但是无法将Fulll Control权限赋予Everyone,也没办法将Administrator帐户加入权限组。总是会提示禁止访问。

在网上搜索了一下这个问题有人说安装微软的SubInACL工具并运行一个批处理就行,但是我在命令行运行后还是失败。

该Windows 7是全新安装的,除驱动程序和SubInACL之外未安装任何程序,所以排除病毒可能。安装好系统后仅连接几个USB设备用于该项测试。

现在求教高人,如何才能实现清理USB设备记录?或者,如何才能使用Administrator帐户清理这些注册表项?多谢!

[size=9px]注:整个过程中使用的是Audit模式下的Administrator帐户,而非具有管理员权限的普通用户。[/size]

14 个解决方案

#1


其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使用 psexec.exe,以 system 身份打开 regedit.exe (psexec.exe -i -d -s regedit.exe)这样便可以直接修改。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载

#2


HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的

#3


引用 2 楼 just4 的回复:
HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的

引用 1 楼 xman_78tom 的回复:
其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使用……

正解  

顶~

#4


[size=9px]
引用 1 楼 xman_78tom 的回复:
其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使……

引用 2 楼 just4 的回复:
HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的
[/size]
多谢二位,见识大长了。
另外,我想问下,怎么用system账户打开注册表?简单的将Administrator帐户加入System这个组就可以吗?还是有其他?烦请指教,多谢多谢。

#5


直接在命令行运行 psexec.exe -i -d -s regedit.exe ,就可以用 system 账户打开注册表。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载

#6


这个网络上搜都有的

#7


多谢楼上各位帮忙,问题已解决!

#8


我 也遇到这问题,请问你是怎么解决的?

#9


非常期待正解……

#10


引用 9 楼 evilcool 的回复:
非常期待正解……
正解在4楼我已经说出,使用psexec.exe配合相应参数,即可实现夺取System帐户的权限,然后就可以删除指定注册表键值。

#11


非要使用psexec.exe吗?
不能用程序实现吗?

#12


请问哪位大虾有在Win7下提升程序权限至SYSTEM的源码吗

#13


引用 5 楼  的回复:
直接在命令行运行 psexec.exe -i -d -s regedit.exe ,就可以用 system 账户打开注册表。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载



win7中,将psexec.exe丢在system32下,打开方法的正解。
5楼V5

#14


太感谢了,刚解决问题

#1


其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使用 psexec.exe,以 system 身份打开 regedit.exe (psexec.exe -i -d -s regedit.exe)这样便可以直接修改。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载

#2


HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的

#3


引用 2 楼 just4 的回复:
HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的

引用 1 楼 xman_78tom 的回复:
其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使用……

正解  

顶~

#4


[size=9px]
引用 1 楼 xman_78tom 的回复:
其实这个是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\vid_**** 注册表项下的 properties 子项(以及其下的子项)为 system 帐户所有,因此 administrator 帐户修改。有两种办法:
其一,夺取 properties 子项及其下的子项的所有权,并为 administrator 帐户授权;
其二,使……

引用 2 楼 just4 的回复:
HKLM\System\CurrentControlSet\Enum\USB

这个在xp下面肯定是权限问题,

到了win7,不仅是权限,连所有权都没了,所以,要先夺所有权,

否则,楼主用system帐户打开注册表,想怎么搞怎么搞,,,当然,win7连system也有限制不是糟糕的
[/size]
多谢二位,见识大长了。
另外,我想问下,怎么用system账户打开注册表?简单的将Administrator帐户加入System这个组就可以吗?还是有其他?烦请指教,多谢多谢。

#5


直接在命令行运行 psexec.exe -i -d -s regedit.exe ,就可以用 system 账户打开注册表。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载

#6


这个网络上搜都有的

#7


多谢楼上各位帮忙,问题已解决!

#8


我 也遇到这问题,请问你是怎么解决的?

#9


非常期待正解……

#10


引用 9 楼 evilcool 的回复:
非常期待正解……
正解在4楼我已经说出,使用psexec.exe配合相应参数,即可实现夺取System帐户的权限,然后就可以删除指定注册表键值。

#11


非要使用psexec.exe吗?
不能用程序实现吗?

#12


请问哪位大虾有在Win7下提升程序权限至SYSTEM的源码吗

#13


引用 5 楼  的回复:
直接在命令行运行 psexec.exe -i -d -s regedit.exe ,就可以用 system 账户打开注册表。

psexec.exe 可以从 http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx 下载



win7中,将psexec.exe丢在system32下,打开方法的正解。
5楼V5

#14


太感谢了,刚解决问题