如何允许非管理员用户写入注册表项HKEY_LOCAL_MACHINESOFTWARESWnameLicenses

本文关键字:HKEY LOCAL MACHINESOFTWARESWnameLicenses 注册表 何允许 管理员 用户 | 更新日期: 2023-09-27 17:49:24

我有一个使用Windows Installer部署的软件。

在Windows XP中,当我使用非admin用户安装软件包时,它要求管理员权限,这是正确的。然后单击以管理员身份运行,等待安装完成。

然后,如果我(非管理员用户)想要写入注册表项"HKEY_LOCAL_MACHINE'SOFTWARE'SWname'Licenses",软件会抛出异常。访问被拒绝

我在源代码中使用了下列代码:

RegistryKey rk= Registry.LocalMachine.CreateSubKey("SOFTWARE''"+swName+"''Licenses", RegistryKeyPermissionCheck.ReadWriteSubTree);

但是如果我是非admin用户,仍然无法访问注册表项。

如何允许非管理员用户在我的软件下对注册表项进行写访问?比如添加许可证?

如何允许非管理员用户写入注册表项HKEY_LOCAL_MACHINESOFTWARESWnameLicenses

首先要指出的是为什么要使用自定义操作而不是使用Windows Installer Registry表?每台机器的安装是"受管理的"或"受信任的",这意味着后续的修复/重新安装将自动提升并具有更新注册表的权限。

您可以使用Windows安装程序中的LockPermissions表来放宽对该注册表项的权限。如果这样做是安全和适当的