使用 bat 文件向 HKEY_LOCAL_MACHINE 添加密钥时访问被拒绝,而向 HKEY_CURRENT_USER 添加密钥则可以正常工作

使用 bat 文件向 HKEY_LOCAL_MACHINE 添加密钥时访问被拒绝,而向 HKEY_CURRENT_USER 添加密钥则可以正常工作

我需要向 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsRunTime\AllowedCOMCLSIDs 添加一个新的注册表项。

我尝试运行以下 bat 脚本:

@echo off 
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsRuntime\AllowedCOMCLSIDs\NewKey" /f /ve
PAUSE

我得到的是一条拒绝访问的消息,尝试以管理员身份启动 cmd.exe 来执行相同操作,但得到的信息相同。我在这台电脑上只有一个帐户,它具有管理员权限。

我还尝试运行此脚本,看看它是否可以将该密钥添加到 HKEY_LOCAL_MACHINE 下的其他目录中,因此我运行了此脚本:

@echo off 
reg add HKEY_CURRENT_USER\Software\NewKey /f /ve
PAUSE

并且该脚本已成功完成。

知道如何才能让第一个也能正常运行吗?我搜索了多个问题、主题和视频教程,这些都展示了用户组属性的修改,但在这种情况下它并不适用,因为我已经分配了所有权限,所以没有任何变化。

我将很感激你的帮助。

编辑:好的,感谢大家的评论,我不知道您也可以更改密钥的权限。必须将所有者从 SYSTEM 更改为我的帐户,然后授予这些帐户完全权限,现在 .bat 脚本已成功完成。

额外的问题 - 是否可以在单个 .bat 文件中更改给定密钥文件的所有者并授予所需的权限?

答案1

该密钥HKEY_CURRENT_USER包含当前用户可以完全访问和修改的用户数据。

HKEY_LOCAL_MACHINE 键包含系统范围的数据,其中一些数据非常敏感,因此修改它通常需要管理员权限。但是,有些数据对于 Windows 的正常运行至关重要,因此这些键的权限由 TrustedInstaller 帐户独家保留。管理员帐户没有修改 TrustedInstaller 帐户拥有的数据的权限。

密钥的情况正是如此 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsRuntime\AllowedCOMCLSIDs,其权限如下:

在此处输入图片描述

该密钥归 TrustedInstaller 所有,它是唯一对该密钥具有完全控制权的帐户。

简而言之 - 您无法修改此密钥。Windows 不允许这样做。

您需要找到一种方法来使用具有正确权限的内置 Windows 应用程序执行您要执行的操作。我建议在新问题中详细说明您的潜在问题,寻求不需要修改 Windows 保留的注册表项的解决方案。

相关内容