我想通过命令行更改此选项schtasks
(或其他),但文档似乎没有它的选项:
如果运行时间超过
仅 GUI 似乎允许这样做:
我已经测试过这种方法:
schtasks /change /tn "/MyTask" /du 5000
(因此它持续 5,000 小时)但它不会改变该选项。
如果无法修改,我也可以通过创建新任务来解决这个问题。
答案1
我找到了一个解决方案,虽然不太方便。可以设置计划任务所需的选项,然后将其导出到 XML 文件中。然后,我们可以从 XML 中删除我们不想更改的所有部分。只有必须保留的强制性部分。<Actions>
没有它,命令就不会运行。然后,我们删除其他所有内容,只留下我们想要在计划任务上修改的内容。在这种情况下,我们正在修改,stop if the task runs longer then
因此我们留下部分<settings>
和值<ExecutionTimeLimit>
。(请注意,您还可以在其中输入无法在 GUI 中选择的值)保存 XML 文件,然后您可以通过运行来更新任何现有的计划任务
schtasks /create /tn 任务名称 /ru 用户帐户 /rp 密码 /f /xml schtaskmodify.xml
缺点是它不是通用的,您需要知道任务操作命令和任务凭据。它在没有 /ru 和 /rp 的情况下也可以工作,但计划任务的凭据会重置为您的凭据。
答案2
PowerShellSet-ScheduledTask
和New-ScheduledTaskSettingsSet
cmdlet 可用于修改计划任务(无论是使用schtasks.exe
、、New-ScheduledTask
GUI 等创建的)。试试这个:
$TaskSettingsObject = New-ScheduledTaskSettingsSet -ExecutionTimeLimit '05:00:00'
Set-ScheduledTask -TaskName "MyTask" -Settings $TaskSettingsObject
也可以通过将命令括在括号中来更简洁地写成一行,New-ScheduledTaskSettingsSet
以便在将 CimInstance 对象作为参数传递之前构建它-Settings
:
Set-ScheduledTask -TaskName "MyTask" -Settings (New-ScheduledTaskSettingsSet -ExecutionTimeLimit '05:00:00')