【问题标题】:32 bit Go Binary requires privilege escalation, 64 bit does not32 位 Go Binary 需要提权,64 位不需要
【发布时间】:2017-01-19 03:13:36
【问题描述】:

使用 GoLang 1.7.4,我正在为我的应用程序构建一个二进制文件,目标是 windows/amd64,这个二进制文件构建得很好,运行时不会导致出现 UAC 提示以进行权限提升。

我切换到为 windows/386 构建二进制文件,但是当构建二进制文件时,它现在需要权限提升,让它变得更加陌生,如果我使用不同的名称为 windows/386 构建二进制文件,它不需要升级权限运行,但是一旦我将二进制文件重命名为它通常构建的名称(重命名在 Windows 资源管理器中完成),它突然又需要升级权限。

所有这些都是在 Windows 10 64 位机器上完成的,你知道到底发生了什么吗?

【问题讨论】:

  • 您的程序所在的目录中没有外部清单文件吗?冒犯的名字是什么(如果不是秘密的话)?
  • This thread 可能会给您一些尝试的想法(外部清单及其索引/缓存问题)。
  • 感谢 Kostix 的回复。最终发现这是 Windows 的东西stackoverflow.com/a/41727595/3552752
  • 很高兴知道!考虑接受你自己的答案——这完全没问题

标签: windows go uac


【解决方案1】:

事实证明,Windows 会根据文件名自动要求提升应用程序的权限。它会检查文件名以查看是否有安装程序,因此名称为“Setup”或“Update”的文件将需要在 32 位应用程序上具有提升的权限。

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 2015-04-18
    • 2011-04-16
    • 2013-07-05
    • 1970-01-01
    • 2021-04-13
    • 2011-09-04
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多