我有一个仍然使用注册表的.NET应用程序。我现在想要在没有用户管理员且不更改组策略对象的情况下进行更新。在更新过程中,我需要访问注册表。应用程序的初始安装可以由管理员完成。
有没有可能实现这个目标?我可以使用证书吗?
答案 0 :(得分:1)
鉴于要求写入HKLM注册表,答案是否定的......
...除非域管理员可以将其推送为更新。您需要以管理员可以推送的格式打包安装程序(我猜一个.msi或.msp)。我不认为在技术上要签署你的msi。
您也可以更改为每用户安装(Chrome浏览器),但如果我正确理解了问题则为时已晚。
在部署方面,我不是真正的专家,但写入HKLM(或程序文件文件夹)需要管理员权限,这是肯定的。围绕这个的一个讨厌的伎俩是安装自己的更新程序,以管理员身份运行,并代表用户更新。但不要,这是一场安全事故等待也会发生。
答案 1 :(得分:1)
可能为时已晚,但如果您可以执行上一次管理更新,则可以通过RegistryKey.GetAccessControl设置对注册表项的权限,设置对该项的写入权限,然后使用RegistryKey.SetAccessControl保存设置(这将在您第一次尝试时需要管理员权限)