在 Windows 启动时启动需要管理员权限的应用

Launch an app on Windows startup that requires administrator privileges

假设 app.exe 是用 requireAdministrator 清单 as detailed here 构建的(这确实是必需的,原因不在此处)。启动应用程序时,启用Windows UAC时,正常提示:

现在此应用程序需要 运行 Windows 启动:在选项对话框中,有一个 "Launch at Windows startup" 复选框可以检查与否。选中后,它会在

中的注册表中添加一个键
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

启用此 "launch on Windows startup feature"。

问题:在Windows启动时,当app.exe在后台(自动)启动时,有这个UAC对话框(见之前的截图) ,这对用户来说很烦人。

问题:如何使 app.exe 可以启动 1. 使用 requireAdminstrator 2. 在 Windows 启动时静默?

执行此操作的干净方法是什么?许多软件都这样做(索引软件 运行 自 Windows 启动以来一直在后台运行,并且不显示此类对话框)。


注意:我想尽可能避免使用 TaskScheduler 方法:https://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html

  1. 索引软件"Everything"确实显示这样的dlalog。
  2. 您想到的其他 运行 只有具有管理员权限的服务,而不是 UI。
  3. 运行 服务要求软件按照该意图构建,普通用户应用程序可以在 "at" 服务的帮助下使用服务规则启动,您已经知道如何做(任务计划程序)。
  4. 您可以用一些其他服务替代 Task Scheduler,但可能会因不必要的重复、资源浪费和可能的新安全漏洞而惹恼用户。

抛开您的喜好,使用任务计划程序。 或者删除应用程序的后台部分并编写服务来代替这些部分。

并且在授予您的代码管理员权限时要非常小心。任何错误都可能导致破坏整个安全基础设施。能力越大,责任越大。