修改注册表项所有者(图形界面 regedit,Win10/Win11 通用)
⚠️ 前置要求:必须用管理员账户,右键以管理员身份运行 regedit;先右键目标项 → 导出备份。
常见场景:所有者是NT SERVICETrustedInstaller,管理员默认无权修改。
完整步骤
-
定位到目标注册表项(左侧树),右键该项 → 权限
-
在权限窗口,点右下角 高级,打开【高级安全设置】
-
在顶部「所有者」那一行,点蓝色的 更改
-
弹出「选择用户或组」窗口:
-
在输入框填写:Administrators(推荐,管理员组),或者填你的当前用户名
-
点击 检查名称,文字会自动加上下划线(验证成功)
-
点【确定】
-
回到高级安全设置窗口:
✅ 【替换子容器和对象的所有者】(按需勾选!)
-
勾选:一次性把所有子项所有者一起改掉;适合驱动、服务整条分支
-
不勾选:只修改当前这一个项,子项保持原样(更安全,推荐优先不勾选)
-
点【应用】→【确定】,所有者修改完成。
✅ 关键后续:拿到所有权≠能修改,还要分配权限
-
回到权限窗口,选中Administrators
-
在下方权限列表,勾选【允许 → 完全控制】
-
应用、确定。这时你才可以新建 / 修改 / 删除该项内的值。
恢复回原所有者(改完调试后建议还原,保护系统)
同样步骤,在更改所有者输入框填写:
NT SERVICETrustedInstaller
点检查名称,确定,应用。很多系统项不还原会被 Windows 自动修复,甚至异常。
PowerShell 命令方式(批量 / 自动化)
以管理员打开 PowerShell
示例:修改HKLMSOFTWARETestKey所有者为 Administrators
= "Registry::HKEY_LOCAL_MACHINESOFTWARETestKey"
= Get-Acl
= New-Object System.Security.Principal.NTAccount("Administrators")
.SetOwner()
Set-Acl
如果需要递归修改所有子项,加参数-Recurse
常见报错 & 坑点
-
无法更改所有者,权限不足
-
确认 regedit 是管理员身份;部分核心系统项(SAM、SECURITY)无法直接修改,需要 PE / 安全模式
-
检查名称找不到用户
-
拼写错误;不要多余空格;中文账户名尽量用英文账户名操作
-
改完所有者,但依然拒绝访问
-
只改了所有者,没有添加完全控制权限;或者存在【拒绝 Deny】权限条目,Deny 优先级最高
-
勾选替换子容器,大量子项报错
-
部分子项有独立保护 ACL,不能批量继承;建议不勾选,逐个处理
-
修改完重启系统后权限自动复原
-
Windows 系统保护机制(Defender、驱动、系统服务项),就算拿到权限,系统会自动回写。强行修改容易蓝屏。
⚠️ 重要安全提醒
-
不要大范围修改HKLMSYSTEM、HKLMSAM、HKLMSECURITY所有者,极易系统无法登录、蓝屏。
-
只修改你明确知道用途的单个注册表项,操作前导出备份。
-
测试完毕,尽量把所有者改回 TrustedInstaller,维持系统安全机制。
|