32 位 Go Binary 需要提权,64 位不需要
32 bit Go Binary requires privilege escalation, 64 bit does not
使用 GoLang 1.7.4,我正在为我的应用程序构建一个二进制文件,目标是 windows/amd64,这个二进制文件构建良好,当 运行 时,没有导致出现 UAC 提示特权升级。
我切换到为 windows/386 构建二进制文件,但是当构建二进制文件时,它现在需要权限升级,如果我为 windows/386 使用不同的名称,它不需要升级到 运行 的权限,但是一旦我将二进制文件重命名为通常构建的名称(重命名在 Windows Explorer 中完成),它突然又需要提升权限。
所有这些都是在 Windows 10 64 位机器上完成的,你知道到底发生了什么吗?
原来 Windows 根据文件名自动要求提升应用程序的权限。它检查文件名以查看是否有安装程序,因此名称如 "Setup" 或 "Update" 的文件将需要在 32 位应用程序上具有提升的权限。
使用 GoLang 1.7.4,我正在为我的应用程序构建一个二进制文件,目标是 windows/amd64,这个二进制文件构建良好,当 运行 时,没有导致出现 UAC 提示特权升级。
我切换到为 windows/386 构建二进制文件,但是当构建二进制文件时,它现在需要权限升级,如果我为 windows/386 使用不同的名称,它不需要升级到 运行 的权限,但是一旦我将二进制文件重命名为通常构建的名称(重命名在 Windows Explorer 中完成),它突然又需要提升权限。
所有这些都是在 Windows 10 64 位机器上完成的,你知道到底发生了什么吗?
原来 Windows 根据文件名自动要求提升应用程序的权限。它检查文件名以查看是否有安装程序,因此名称如 "Setup" 或 "Update" 的文件将需要在 32 位应用程序上具有提升的权限。