我使用Windows Installer部署了一个软件。
在Windows XP上,当我使用非管理员用户安装软件包时,它会询问管理员是否正确。 然后我单击以管理员身份运行并等待安装完成。
然后,如果我(非管理员用户)想要写入注册表项“HKEY_LOCAL_MACHINE \ SOFTWARE \ SWname \ Licenses”,则软件会抛出异常。访问被拒绝。
我在源代码中使用了以下内容:
RegistryKey rk= Registry.LocalMachine.CreateSubKey("SOFTWARE\\"+swName+"\\Licenses", RegistryKeyPermissionCheck.ReadWriteSubTree);
但如果我是非管理员用户,仍然无法访问注册表项。
如何允许非管理员用户对我的软件下的注册表项具有写入权限?喜欢添加许可证吗?
答案 0 :(得分:0)
首先要指出的是为什么你有自定义操作而不是使用Windows Installer注册表?每台计算机的安装是“托管”或“受信任”,这意味着后续修复/重新安装将自动提升并有权更新注册表。
您可以使用Windows Installer中的LockPermissions表来放宽该注册表项的权限。假设这样做是安全和适当的。