如何从命令行创建仅按需运行的计划任务?

如何从命令行创建仅按需运行的计划任务?

我正在尝试复制以下步骤本文创建快捷方式以启动程序而无需 UAC 提示。但是我想从命令行创建任务。

这是任务管理器我正在使用的命令:

schtasks /create /tn MyTaskName /tr "c:\MyApplication.exe" /sc ONCE /st 00:00 /RL HIGHEST /RU BUILTIN\Administrators

/sc开关/st让我很困惑。我不想指定时间表或开始时间,只想按需运行任务。

答案1

您可以始终指定“/sd 01/01/1901”并让其指定发生在过去的时间。出于显而易见的原因,它应该会抱怨“警告:任务可能无法运行,因为 /ST 早于当前时间。”但它永远不应该在没有您的干预的情况下运行,因为它永远不会触发计划来实际执行。

您不能忽略时间(据我所知),因为调度程序不喜欢这样。因为这有点违反调度程序的用途。

答案2

您是否尝试过只创建快捷方式,其中包含您想要在没有 UAC 的情况下运行的程序和选项。然后转到快捷方式的属性、高级,然后“以管理员身份运行”?

我使用这项技术来制作一个 BAT 文件,该文件会帮我改变 IP 路由,而这通常需要提升的访问权限。

答案3

我创建了一个 XML 模板,并删除了“触发器”节点。

要创建计划任务 XML 文件:

  • 在 GUI 中,右键单击某个任务并选择导出。
  • 在命令行...

    schtasks /query /xml /tn "任务名称" > c:\path\task.xml

要删除触发器并进行其他更改:

  • 在可以识别 UTF-16 的文本编辑器中打开 XML 文件。

    记事本 c:\path\task.xml

  • 删除从 到 开始的行,包括包含 的行。

  • 保存文件。

要在编辑任务 XML 文件后将其导入,请执行以下操作:

  • 在 GUI 中,选择您想要添加任务的分支,然后单击“操作”菜单并选择“导入任务”。
  • 在命令行...

    schtasks /create /tn "任务名称" /xml c:\path\task.xml

相关内容