我开发了一个必须写入Windows注册表的实用程序。我想知道没有管理员权限的用户是否可以写入注册表。我尝试了“HKEY_LOCAL_MACHINE”并将其锁定。注册表中是否有这些用户可以写入的部分? 如果不是 - 如果用户不是管理员中的成员,则用户必须具有哪些权限才能写入注册表。组?
提前致谢!
答案 0 :(得分:4)
对于用户设置,您必须使用HKEY_CURRENT_USER
。每个用户都拥有此注册表的个人副本,并且一个用户无法访问其他用户的设置。如果用户具有漫游配置文件,则注册表将与用户在不同的计算机上漫游。
如果您确实需要存储在本地计算机上并由该计算机上的所有用户共享的设置,则必须使用HKEY_LOCAL_MACHINE
。要使非管理员用户能够写入此注册表,您必须修改正在使用的注册表项的ACL。要做到这一点,您需要具有提升的权限。这可以使用安装程序完成。这不是一种常见的方法。
答案 1 :(得分:1)
权限可以完全自定义每个子树(使用ACLs),但HKEY_CURRENT_USER
通常应完全可写。
您可以使用regedit
来探索注册表的当前设置权限:)