使 HKEY_LOCAL_MACHINE\HARDWARE 下的注册表项永久只读

Make registry key under HKEY_LOCAL_MACHINE\HARDWARE persistently read-only

你好,几天前我想在

中重命名“ProcessorName”
HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0. 

我成功了,但是每次系统重新启动时,windows 恢复了我所做的更改。

使用 SubACL,我将注册表项的所有者更改为管理员组,但仍然没有用。

我也试过把.reg文件放到

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

但我不想要这个,因为我正在创建一个允许重命名您的 CPU 名称的程序。

我想如果我把这个键设置为“只读”,系统就不能改变它,它只是读取它。

如何使用 cmd、powershell 等实现这一点(不打开 regedit)?

我认为您永远无法通过设计来进行更改以在重新启动后幸存下来。据我所知,HKLM\HARDWARE 是不稳定的数据。我的理解是,通过 ntdetect.com 扫描系统的硬件,每次启动时都会删除并重新创建整个密钥。所以我认为将其设置为只读并不重要。

即使我上面的理解不正确,ntdetect.com 在执行传递给 NT 内核 (ntoskrnl.exe) 之前由 NT 引导加载程序 (NTLDR) 运行。在 NT 内核加载之前进行硬件检测 运行s,因为内核在加载之前需要已安装硬件的列表。如果它尊重写拒绝 ACL,我会感到惊讶。我认为这是在安全系统可用之前。

我认为您所能做的就是创建一个在启动或登录时执行的脚本或程序来重命名该值,但我想我看不出这样做的目的。