我尝试通过 CMD 删除以下注册表项,但收到“拒绝访问”提示
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Pastel
- 上述注册表无法手动删除,因为它会给出错误
为了处理我使用的权限执行程序并以管理员身份运行以下命令,这将启动具有完全权限的注册表编辑器,但我仍然无法删除注册表项
psexec -i -d -s c:\windows\regedit.exe
我正在运行 Windows 7。如何使用脚本或在 Windows 启动时从 CMD 授予权限并删除注册表项?
编辑:上述注册表及其子文件夹具有以下权限。
创建者所有者:特殊权限 ----> 如果我禁用继承并将权限更改为授予完全访问权限,我只需点击“确定”并右键单击>权限,则完全访问权限将重置为特殊权限。
系统:完全控制,读取管理员:完全控制,读取用户:完全控制,读取
编辑#2:
我已经使用了以下脚本,但仍然没有成功
REM ----------------------------------------------------------------
cd /d %~dp0
@ECHO OFF
Title Replacing permissions on HKEY_CLASSES_ROOT\DesktopBackground\Shell\Display
setacl.exe -on "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Pastel" -ot reg -actn setowner -ownr "n:Administrators"
Pause
REG DELETE HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Pastel /f
Pause
Exit
REM ----------------------------------------------------------------
答案1
打开命令提示符时按住 Control 和 Shift。这将以管理员身份打开命令提示符(可能在弹出 UAC 对话框后)。然后,您应该拥有对注册表进行任何操作的完全权限。但要极其小心,因为弄乱注册表是彻底杀死 Windows 机器的最快方法。
编辑:
感谢@DavidPostill,我意识到我应该再澄清一些。Windows 中的一些注册表项设置为组System
。在 Windows 中,System
级别是多于 Administrator
(即系统比管理员拥有更多权限和权力)。运行psexec -s
将运行您以 提供的任何选项System
。但是,只有 才Administrator
有权以 身份执行任何操作System
。Psexec 不会就此发出警告(至少在我上次使用时不会);它只会以最高权限运行,这可能是您的用户帐户的权限。从 shell 中使用 -s 执行 psexecAdministrator
应该可以解决此问题。