我需要向 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 保留的注册表项的解决方案。