【问题标题】:Automatically elevate Windows setup to admin mode自动将 Windows 设置提升到管理员模式
【发布时间】:2015-03-06 21:12:12
【问题描述】:

我们有带有自定义设置的旧版桌面原生应用。安装程序已签名,必须以管理员身份运行。 5 年前构建和签名的当前 prod setup EXE 会自动提升并在 Windows 7 或 8 上以管理员身份运行。我们现在重建的设置也使用不同的证书签名并且与旧的名称相同不会自动提升到admin,因此失败。

是什么让 Windows 以管理员身份自动运行安装程序 EXE?

【问题讨论】:

  • 很可能:旧安装程序没有清单,但 Windows 成功猜测它是安装程序并请求提升。新设置有一个清单,但您没有显式配置 requestedExecutionLevel,因此将其设置为默认值 asInvoker。如果您使用的是 Microsoft 构建工具,请检查 /MANIFESTUAC 链接器选项的值。您想将其设置为 requireAdministrator。

标签: windows installation setup-project


【解决方案1】:

签名与管理员权限无关,因此在这方面不必担心。

为了扩展 Harry Johnson 的评论(这是正确的),Windows 上的早期版本的 UAC 用于自动提升看起来像安装程序的程序。我不知道使用的确切算法,但是名称或描述中带有 setup 或 install 的程序被提升了。这种情况不再发生,并且在 UAC 上,由管理员运行的程序不会被提升,除非它们通过清单或以管理员身份运行显式提升。

不知道 setup.exe 来自哪里,如果你构建它。或者它带有一个安装工具版本(Visual Studio?),那么很难说如何修复它。

如果这恰好是基于 MSI 的安装,则 MSI 将要求提升,如果它被标记为这种方式。从问题中不清楚安装程序的哪一部分需要提升,但如果实际安装的是 setup.exe,那么它都需要提升并且需要提升清单。

【讨论】:

  • UAC 的行为没有改变,但启发式仅适用于没有清单的应用程序 - 这是一种向后兼容的措施。改变的是现代构建工具总是包含一个清单。
猜你喜欢
  • 2016-10-23
  • 2013-04-06
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
相关资源
最近更新 更多