0

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

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

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

我在源代码中使用以下内容:

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

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

如何允许非管理员用户对我的软件下的注册表项具有写入权限?喜欢添加许可证?

4

1 回答 1

0

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

您可以使用 Windows Installer 中的 LockPermissions 表来放宽对该注册表项的权限。假设这样做是安全且适当的。

于 2014-03-10T21:39:49.700 回答