解释
我想在登录时运行一些程序/文件,因此我使用任务计划程序,而不是启动文件夹或脚本,因为某些程序需要 UAC 提升,并且我相信任务计划程序的“以最高权限运行”将抑制提示。
问题
第一个动作永远不会正确退出,因此,由于任务动作是同步的,因此只有第一个动作会运行。
那么,有人知道如何使任务异步或者有其他建议吗?
设置
答案1
我是根据以下评论讨论来到这里的:所以
老实说,我的启动菜单中有一些需要管理员权限的程序,这些程序似乎无需我的任何干预就能正常运行。
您是否尝试过将这些程序放入组策略登录/关闭脚本中?在计算机配置、Windows 设置下。我不确定这是否适合您。可能还有其他基于组策略的解决方案 - 但它们有点超出我的理解范围。
不过,我按照要求发表了我的评论 - 我根据您的实际问题对其进行了修改:
任务计划程序任务按顺序运行,而不是同时运行。如果您希望所有任务同时运行(并行),最简单的方法是创建多个任务同时运行(或在同一事件中运行,例如登录时)。如果需要,使用“延迟任务”高级选项错开它们的启动顺序。
答案2
我有一个用于启动每个程序的批处理文件。因为我希望所有程序异步运行,并且每个程序之间都有延迟(因为前两个程序需要大约 10-15 秒才能完全启动),所以我在每个程序行之间使用“ping localhost -n 15 >nul”来延迟。
效果非常好,这意味着我在 TS 中只有一个任务。
批处理文件示例:
@echo off
::Start prog 1
"C:\Program Files\prog1\prog1.exe"
::Need to wait 15 seconds for it to start
ping localhost -n 15 >nul
:: Start prog 2
:: Further progs & delays here if required, etc,etc...
答案3
由于启动的操作列表中的第一个程序仍在运行,因此任务计划程序中的等待脚本处理程序永远不会运行第二个程序,直到第一个程序完成。它旨在启动单个程序/操作或一系列短暂运行的操作。在这里,您希望将每个操作作为单独计划的任务运行。
答案4
您可以使用以下命令从批处理文件运行计划任务:
C:\Windows\System32\schtasks.exe /run /tn "????????"
其中????????
是计划任务的名称。例如,如果您在任务计划程序库下创建一个名为 MyApps 的文件夹,并在该文件夹下创建一个名为 Fraps 的任务,则您的命令将如下所示:
C:\Windows\System32\schtasks.exe /run /tn "MyApps\Fraps"
您甚至可以使用它作为快捷方式直接启动 fraps,无需 UAC。
但在这种情况下,我只需先启动 Fraps,然后在“常规”选项卡中勾选该选项Run Fraps when Windows starts
。