我们有一个用 VB6 编写的业务线应用程序。当应用程序启动时,它会检查特定的网络路径以查看应用程序是否有任何更新。如果有更新,程序将以域管理员身份登录并复制新文件。自 Windows Vista 以来,由于 UAC,此功能已失效。为了让我们的应用程序自行更新,用户必须右键单击并选择“以管理员身份运行”。如果用户不是其计算机上的本地管理员,Windows 将要求提供管理员凭据。组策略中是否有任何方法可以指定某个可执行文件可以在没有提示的情况下以管理员身份运行?如果没有,有人对如何解决这个问题有什么建议吗?
答案1
如果应用程序安装在 Program Files 和 Windows vista/7 下,UAC 将仅允许管理员更改这些文件。我认为有几种可能的方法可以绕过此安全功能。请注意 - UAC 正在试图防止您自掘坟墓,所以要小心。
1)(未经测试)将应用程序重新安装在非程序文件目录中。Windows 仅控制对某些特殊目录的访问
2) 关闭 UAC。这应该会使其恢复到 Vista 之前的功能。
3)如果可以通过命令行进行更新,请安排定期任务以管理员身份运行以执行更新
4)每当有发布时,打包更新并部署,以便应用程序永远不需要更新。