0

我正在尝试使用 Inno Setup 构建静默安装。我正在使用 /SILENT 和 /VERYSILENT 命令参数,一切正常,除了开始时弹出的 UAC 窗口。

我该如何解决这个问题?

我发现一些帖子松散地提到了使用 SignTool,但其他消息来源说这只会将 UAC 框更改为蓝色并填充发布者参数。

有人可以在这里帮忙吗?该场景是一个安装程序,它将通过 Internet 分发,以在没有任何用户交互的情况下静默更新机器上的现有软件。

4

4 回答 4

3

要在没有 UAC 提示的情况下运行提升的设置,您需要从已经提升的东西运行它。如果程序可以在没有用户控制访问的情况下提升,它将破坏 UAC 的全部意义。

签署可执行文件只会显示发布者。

于 2013-04-05T09:02:53.017 回答
1

基本思想是首先安装在本地系统帐户下运行的服务,该服务将启动您的更新安装程序,以便更新可以绕过 UAC,并且不强制最终用户以管理员身份运行。如果您不想自己开发,可以使用这样的 3rd 方解决方案:

http://www.autoupdateplus.com/

当您的用户第一次安装您的应用程序时,会安装“更新程序服务”,并且所有后续更新都可以静默。

(我们曾经使用 AutoUpdate+,但后来决定推出我们自己的,它只是下载我们应用程序的完整安装程序文件并静默运行。这在 AutoUpdate+ 中是不可能的,我们必须使用更改的文件创建更新包,这变成了太麻烦了,有太多的错误空间。)

于 2015-05-27T10:11:17.063 回答
0

我找到了一种解决方案,例如如果我在临时安装 EXE 之前执行以下操作,那么在安装后我将其还原。那么,我希望我的目的得到解决。

[注册表] 根:“HKLM”;子项:“SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”;值类型:双字;ValueName: "ConsentPromptBehaviorAdmin"; 值数据:“0x00000000”

于 2013-06-25T07:00:17.450 回答
0

您可以将其安装为用户软件。那么你对 UAC 没有任何问题,因为它不是系统范围的软件。ProgramData 必须存储在用户文件夹中,并且必须在 CurrentUser 下完成注册设置。

不确定你是否喜欢这样做。

但无论如何。您不必照顾 UAC。公司将拥有一个具有更高权限的部署服务器,因此静默部署不会强制在那里发送 UAC 消息。

UAC 消息是正常行为

于 2019-12-18T15:27:24.223 回答