【问题标题】:Py2Exe: avoid windows to request permission to execute .exe filePy2Exe:避免windows请求执行.exe文件的权限
【发布时间】:2015-09-20 17:21:11
【问题描述】:

我有一个直接从控制台(Windows Powershell)执行的 py2exe 构建的程序。涉及的模块有:xlrd 和 PrettyTable。

不幸的是,每次调用该程序时,Windows 都会要求用户确认,因为该程序需要特定的权限。

这是不可取的,因为脚本对系统来说是“安全的”。它只是获取文本文件作为参数并在同一个文件夹中输出一个文本文件。我不希望用户被这个权限请求吓到。

有没有办法避免这种行为?

【问题讨论】:

  • 如果您询问是否可以绕过 UAC 提示以获得管理权限,答案是否定的。使用“如果这是可能的”思维实验。这是所有恶意软件都会做的事情。
  • 不,我不是在问这么愚蠢的问题。只是想了解 py2exe 为激活 UAC 做了什么,为什么以及我可以用它做什么,因为这里没有恶意软件,也没有特定的操作,只有文本文件处理。
  • 所以,这不是 py2exe 的错。只是文件命名的问题。
  • 明白。很抱歉假设了一个愚蠢的问题,但你会惊讶于这个问题的普遍性(我怎样才能绕过 UAC?)。
  • 没关系,我能理解。

标签: windows powershell console py2exe privileges


【解决方案1】:

有可能;通常,在较新版本的 Windows 中,可执行文件需要管理员或特权或特殊权限的原因是它修改了文件系统中的某些内容。由于您使用 Excel 文件模块,您可能正在访问硬盘驱动器,这让系统感到担忧,因为它认为您的应用程序可能会弄乱一些重要的东西。 (就像恶意软件、病毒和其他垃圾一样)但由于它没有安装任何可执行文件,这个 Stackoverflow 问题可能有你的答案:

(如果您有权访问清单文件)

Stack Overflow Question

否则,您可能无能为力,因为 Windows 就是这样构建的

【讨论】:

  • 因此,清单文件似乎应该作为 .exe 文件的“附件”分发。现在我想知道清单文件是否可以嵌入到 .exe 文件本身中。
  • 您链接的答案帮助我解决了问题!谢谢!
【解决方案2】:

看来我在this answer的帮助下自己找到了答案,由this answer链接。这个问题也与这个other 问题有关。一个共同的原因产生了两个不同但相关的问题。

这是由 .exe 文件名引起的。切换到不同的文件名,停止 UAC 请求管理员权限(并在同一个 shell 中执行软件,这解决了另一个问题)。

名字是:

<project_name_under_NDA>_update.exe

但是切换到

try.exe

成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2017-01-06
    • 2013-08-25
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多