gpt4 book ai didi

windows - 在操作系统启动时启动提升权限的应用程序,而无需UAC提示

转载 作者:行者123 更新时间:2023-12-03 11:11:58 25 4
gpt4 key购买 nike

我正在为Windows开发一个程序,该程序包含两个组件:

  • 内核驱动程序(用EV证书签名)
  • 用户级GUI组件,.exe文件(用Delphi编写)。

  • .exe需要运行高级权限,才能启动驱动程序并执行其他高级任务。

    这样的程序如何在Windows启动时自动运行而不显示UAC提示?

    我看到许多类似的应用程序,例如反恶意软件程序,都可以在没有UAC提示的情况下提升权限地启动。

    我正在考虑以下选项,如果您能指出正确的方向,将不胜感激:

    1.将驱动程序启动设置为自动,从内核服务启动.exe

    但是,我的研究表明,没有从内核启动用户级进程的书面方法。

    2.创建一个单独的用户级服务,该服务将启动.exe

    我读到用户级别的服务不受UAC的限制。

    一种可能的方法是创建一个自动启动的用户级服务,该服务仅运行.exe进程(使用 CreateProcessAsUser()),然后自行终止。

    3.将.exe程序从Delphi GUI应用程序转换为用户级服务

    与选项2相似,但是我们没有为服务创建单独的.exe,而是将当前的GUI应用程序转换为也可以作为服务工作。
    我在 this StackOverflow thread上找到了一些与此有关的文档。
    但是,与创建单独的专用服务相比,此方法似乎更复杂。

    4. EV证书是否具有某些优点来允许执行此任务?

    5.除了上述方法以外,还有其他更好的方法吗?

    最佳答案

    正如Sertac Akyuz在其评论中指出的那样,您应该为此使用Windows Task Schedluer。

    使用Task Scheduler,您可以创建一个将在用户登录时运行的任务,并以最高的可用特权运行EXE。

    当我说可用的最高特权时,当您在When running the task, use the following user account字段中指定一组用户时,是指当前用户的最高特权,前提是当前用户是该组的成员。因此,如果当前用户没有足够的权限执行具有提升特权的程序,则该任务将以标准特权执行您的应用程序。

    但是,如字段名所示,您还可以指定此任务将始终使用特定的用户帐户运行您的应用程序,这意味着它将使用该帐户特权级别而不是当前用户帐户。

    使用任务计划程序执行某些驱动程序附带的GUI应用程序的任何方式都非常流行。例如,华硕使用这种方法来启动其AI Suite程序,该程序允许监视和调整其主板的各种设置。这是在我的计算机上配置此类任务的方式。

    ASUS AI Suite II task properties - General
    ASUS AI Suite II task properties - Triggers
    ASUS AI Suite II task properties - Actions
    ASUS AI Suite II task properties - Settings

    PS:我故意选择向您显示ASUS AI Suite的任务属性,因为它实际上是由Delphi制作的

    关于windows - 在操作系统启动时启动提升权限的应用程序,而无需UAC提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61371914/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com