Inno Setup 在 Windows XP with PrivilegesRequired=none 上不弹出 UAC 提示

Inno Setup does not popup UAC prompt on Windows XP with PrivilegesRequired=none

我在 Inno Setup 中做 PrivilegesRequired=none

如果用户具有管理权限,此设置应提示 UAC。

在一些 Windows XP 的计算机上,即使管理员已登录,UAC 也不会得到提示,我通过检查 IsAdminLoggedOn 设置验证了这一点,我看到它被设置为True.

为什么会这样?

  • 如果IsAdminLoggedOnreturnsTrue,安装程序已经运行管理员权限("elevated").

    请注意,Windows XP 中没有权限分离。如果与您 运行 一起安装程序的用户是管理员,则您始终拥有管理员权限。 Windows XP 中没有 UAC 提示。

    您可以在 Windows XP 中获得的唯一提示是 "Run as" 提示,它允许您以不同的用户(通常是管理员)身份 运行 和 application/installer。

  • 通过使用(未记录和弃用的)PrivilegesRequired=none,您实际上明确地告诉 Inno Setup 不要提升 安装程序,即使它是开始不高架。你通常得到 UAC/Run As 提示只是因为 Windows 内部启发式检测到你正在启动的 .exe 是一个安装程序,可能需要 运行升高。

    详见我的问题Make Inno Setup installer request privileges elevation only when needed