2

我有一个仍在使用注册表的 .NET 应用程序。我现在想在用户不是管理员且不更改组策略对象的情况下进行更新。在更新过程中,我需要访问注册表。应用程序的初始安装可以由管理员完成。

有没有可能实现这个目标?我可以为此使用证书吗?

4

2 回答 2

1

鉴于需要写入 HKLM 注册表,答案是否定的......

...除非它可以由域管理员作为更新推送。您需要以管理员可以推送的格式打包安装程序(我猜是 .msi 或 .msp)。我认为签署您的 msi 在技术上不是必需的。

您也可以更改为按用户安装(a la Chrome),但如果我正确理解了这个问题,那就太迟了。

在部署方面,我不是真正的专家,但写入 HKLM(或 Program 文件夹)需要管理员权限,这是肯定的。一个讨厌的技巧是安装您自己的以管理员​​身份运行的更新程序,并代表用户进行更新。但是不要,这是一个等待发生的安全事故。

于 2013-04-03T19:54:32.890 回答
1

可能为时已晚,但如果您可以进行最后一次管理更新,您可以通过RegistryKey.GetAccessControl设置注册表项的权限,设置对密钥的写访问权限,然后使用RegistryKey.SetAccessControl保存设置(这将需要管理员权限你第一次尝试这样做)

于 2013-04-03T21:18:06.433 回答