【问题标题】:How to make a program Run as Administrator Automatically如何让程序自动以管理员身份运行
【发布时间】:2018-07-26 18:25:29
【问题描述】:

我目前正在编写一个 WPF 项目。该项目是一种任务管理器程序。在项目内部,有一些方法可以获取实时 PC 数据(温度、频率等)。但是,项目中的某些方法需要管理员权限,以便程序可以访问来自 PC 的不同值/数据。

手头的问题是程序每次运行时都会请求这些权限。虽然我知道这只是个人喜好,但我想让程序仅在安装/首次运行时要求上述权限/第一次运行,这样用户就没有每次都授权他们的许可。

需要明确的是,这不是关于如何获得一般管理员权限的问题。我知道可以选择操作 app.manifest 文件。此问题仅与以编程方式或通过其他方式(例如视觉工作室)保持设置的管理员权限有关。

(此外,该程序使用 NSIS 作为安装程序,如果这有帮助的话)

谢谢

编辑:

回头看这个问题,真是个愚蠢的问题。这只是由于我草率/懒惰的编码。

【问题讨论】:

  • 我严重怀疑 UAC 会采用这种方案
  • 您已经check this out 了吗? and this
  • @BradleyDotNET 你是什么意思?
  • 正如答案所述,UAC 的全部意义在于让用户知道程序何时以提升的权限运行。你试图绕过这个。
  • 是的,但我不明白将其称为方案或评论而不添加有效问题的对话/解决方案的意义。这个问题不是“如何用 WPF 程序感染 PC”,我希望通过使程序尽可能可用来吸引普通用户。从理论上讲,这与用户在其属性中更改 .exe 的权限没有什么不同。我要求该程序可以为普通用户实现相同的结果,他们很可能不知道如何手动更改所述属性。

标签: c# admin uac


【解决方案1】:

Windows 是一个安全的操作系统。如果用户不是管理员:那么您将无法控制它。

您的应用程序在 Windows XP 下会做什么?

  • 它会崩溃吗?
  • 您会拒绝跑步吗?
  • 您会告诉用户他们需要成为管理员吗?

您可以使用更小的模式来为用户提供有用的信息吗?毕竟,Process Explorer 仍然能够运行并为我提供有关计算机上进程的各种有用信息。

但如果用户是标准用户,则无法在安装时更改。

【讨论】:

    【解决方案2】:

    这是不可能的,因为 UAC Prompt 的目的是为用户创造意识,以便他们知道他们允许对软件具有管理员权限。

    我真的不建议您跳过提示步骤。

    你不能直接做,但你可以间接做,如果你能写一个代码来做下面的步骤here,你就可以实现你的要求。

    【讨论】:

    • 太棒了。感谢您的回复!不过我想知道,您为什么不建议跳过提示的步骤?
    • 因为您真的不希望您的客户怀疑。我建议您只使用清单文件并在软件本身中添加一个选项,该选项要求用户信任该软件,如果他们通过执行诸如勾选复选框或同意之类的操作来允许它,然后您可以执行快捷方式,但如果他们不这样做,那么就让它保持原样。
    • 啊,我明白了。所以你会建议不要这样做,即使程序在程序安装的第一个实例中请求许可?
    • 最不关心安装时显示的提示,因为在大多数情况下需要执行安装。但是如果每次用户打开应用程序时都会显示它,那么他们就会开始思考他们是否足够聪明,以至于程序正在使用管理员权限来处理他们不知道的事情。我不反对,这对某些用户来说可能真的很烦人,但如果你让他们知道如果他们勾选复选框或通过向他们展示一些协议来一劳永逸地允许权限你会做什么,那么你会得到答案,如果碰巧你甚至是错误地进入了法律。
    • 这是有道理的。考虑到您的建议,我认为最好的选择可能是指导用户如何手动更改 .exe 的属性(如果他们愿意)。
    猜你喜欢
    • 2012-03-13
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2014-05-07
    • 2021-11-10
    • 2017-08-23
    相关资源
    最近更新 更多