如何确保任务在 Windows 启动时运行?

如何确保任务在 Windows 启动时运行?

我在 Windows(win10 和 win11)启动时无法运行 PowerShell 脚本和/或 .exe 文件。我尝试了多种方法:

  1. 将脚本放入里面shell:startup
  2. 使用任务计划程序创建任务
  3. 将任务作为 Windows 服务运行

有时它会运行,有时它不会运行。我感觉 Windows 会随时运行任务。在 Linux 上,如果我将任务放入 cron 中,它一定会运行。

下面是一个大多数时候不运行(但有时会运行)的 Windows 服务的示例: 在此处输入图片描述 我已尝试AutomaticAutomatic (Delayed start),但结果是一样的。

如果您好奇的话,我想aria2c.exe在 RPC 模式下运行,因此我在任务计划程序中为其创建了一个任务。我还想运行一个.ps1脚本,因此我将其放在启动文件夹中。安装程序默认创建了 VirtioFS 服务以在启动时启动虚拟驱动器。然而,一切都超出了我的控制范围。问题可能是什么原因造成的?

答案1

将 .ps1 脚本复制到shell:startup只会在默认情况下登录时尝试使用记事本打开该文件(如 .bashrc 条目)。查看在这里回答如何从该文件夹启动 powershell 脚本。

注意:系统启动文件夹实际上是shell:common startup

任务计划程序触发器“当计算机启动时”和“当我登录时”工作正常,但需要正确定义。以管理员身份运行的以下命令可以自动创建一个:

schtasks /create /tn "FileMonitor" /sc onstart /delay 0000:30 /rl highest /ru system /tr "powershell.exe -file C:\Path\To\Script.ps1"

请注意,Windows 默认不会运行任意 powershell 脚本文件。您可以使用 查看Get-ExecutionPolicy -List,并使用 将其更改Set-ExecutionPolicy Unrestricted -Scope LocalMachine为以系统身份运行的脚本。


至于特定服务未启动,请检查事件日志。它可能确实启动了,但崩溃了 - 确保您的 virtiofs 驱动程序是最新的

相关内容