【问题标题】:Why is Windows asking for system administrator privileges for running executables with "install" in their name?为什么 Windows 要求系统管理员权限才能运行名称中带有“安装”的可执行文件?
【发布时间】:2012-07-19 09:09:32
【问题描述】:

我正在构建一个工具,它允许将应用程序安装到我们的模拟器中,它被称为“cl-install.exe”。它真的不需要任何管理员权限来运行。但是当从命令提示符调用该命令时,Windows 7 总是会弹出一个对话框,要求用户提供管理员权限。

如果我将同一个可执行文件重命名为其他名称,其中没有“安装”或“设置”字样,Windows 不会要求管理员权限。

有什么方法可以阻止 Windows 执行此操作,而无需重命名我的可执行文件?

【问题讨论】:

标签: windows windows-7


【解决方案1】:

这是 Windows Vista 及更高版本中存在的启发式方法的一部分。来自here,如果文件包含“安装”、“设置”、“更新”或“补丁”字样 - 假定安装程序。

您可以通过在清单中添加以下内容来防止这种情况

<requestedExecutionLevel level="asInvoker" />

【讨论】:

  • 我喜欢这个网站。我每天学习 10 件新东西。谢谢你的回答。
  • 我在与我的可执行文件相同的目录中创建了一个名为“cl-install.exe.manifest”的文件,并添加了您给出的行。现在运行文件时,我得到类似:“应用程序无法启动,因为它的并排配置不正确......”。我的可执行文件不是安装程序。它是一个使用 MinGW GCC 构建的简单自定义实用程序。
  • 您需要将清单正确嵌入到您的可执行文件中。希望对 stackoverflow 的搜索可以帮助您了解如何在 MinGW 中执行此操作,如果没有,请提出一个新问题。
  • 对不起,我真的退缩了,稍微改变了我的可执行文件名。无论如何,谢谢你的指点。
【解决方案2】:

我在这里找到了一个可行的解决方案:https://github.com/bmatzelle/gow/issues/156

引用:

解决方案是为可执行文件编写下面列出的清单文件,以说服 UAC 它不需要管理权限。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <!-- Make sure that UAC believes
        that it does not require administrative privilege -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

manifest文件的文件名应该是install.exe.manifest和patch.exe.manifest,然后和install.exe和patch.exe放在同一个文件夹中。

如果 UAC 提示仍然弹出,更改 install.exe 和 patch.exe 的时间戳以说服 Windows 选择新的清单文件。

【讨论】:

    【解决方案3】:

    如果我没记错的话,您可以通过以下方式禁用此行为(引自Technet):

    1. 点击开始,点击所有程序,点击附件,点击运行,输入secpol.msc打开文本框中,然后单击确定

    2. 本地安全设置控制台树中,单击本地策略,然后单击安全选项

    3. 向下滚动并双击用户帐户控制:检测应用程序安装并提示提升

    4. 选择禁用选项,然后点击确定

    5. 关闭本地安全设置窗口。

    您可能需要重新登录才能使设置生效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2022-12-05
      • 2012-04-15
      • 1970-01-01
      • 2012-07-01
      • 2014-05-31
      • 2020-06-04
      相关资源
      最近更新 更多