与非管理员用户运行应用程序更新

时间:2014-06-19 22:40:54

标签: winforms windows-installer scheduler installaware non-admin

我使用Windows安装程序包将winforms应用程序分发给多个客户端,并且因为其中一些已经更改了安全策略,我需要找到一种方法来为用户运行应用程序更新(通过安装程序)没有管理权。

在下面找到有关更新过程的一些信息: - 使用InstallAware创建安装程序 - 在更新过程中,将卸载旧版本并安装新版本。 - 安装程序需要管理员权限,因为它写入注册表并安装一些Windows服务。 - 应用程序安装在程序文件文件夹中。

此时我正在实施的解决方案是创建一个新的调度程序任务,它运行一个简单的控制台应用程序来检查新的更新,如果存在新版本,它会下载安装程序并以静默模式执行它(整个安装将以静默方式执行,无需用户界面或任何用户干预。将使用对话框控件的默认值。

对此解决方案的一些考虑: - 在更新过程中很难处理可能的错误。 - 无法提醒用户更新进程正在运行(因为调度程序任务与其他用户一起运行,无法与已登录用户进行交互)。

有没有人实现过类似的东西?这是实现目标的最佳方式吗?

1 个答案:

答案 0 :(得分:1)

如果更新是补丁,并且您满足关于首次安装产品​​的一系列要求并同时签署MSI和补丁,则有一种限制用户应用补丁的机制,此处描述的UAC补丁:

http://msdn.microsoft.com/en-us/library/aa372388(v=vs.85).aspx

如果您搜索LUA Patching(其原始名称)或最小权限修补,那么有更多信息,尽管它相当模糊。如果它们具有的安全策略包括设置DisableLUAPatching,那么您将无法使用它。