创建一个计划的任务,该任务每分钟运行一次,而无需使用PowerShell登录用户

时间:2020-01-02 19:47:35

标签: windows powershell scheduled-tasks

我正在尝试使用PowerShell创建(和替换)计划的Windows任务。我找到了相关PowerShell命令的文档,据我所知,我一切正常:

$action = New-ScheduledTaskAction -Execute "node" -Argument "C:/scripts/task.js"
$now = Get-Date
$interval = New-TimeSpan -Seconds 60
$forever = [System.TimeSpan]::MaxValue
$trigger = New-ScheduledTaskTrigger -Once -At $now -RepetitionInterval $interval -RepetitionDuration $forever
$settings = New-ScheduledTaskSettingsSet
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask -TaskName 'TEST' -InputObject $task

但是,运行此命令时,出现一个神秘错误:

Register-ScheduledTask:任务XML包含格式错误或超出范围的值。

错误消息无用-如何调试?

  • 什么XML?在什么路径上?
  • 哪个值?
  • 什么范围?

这个答案说现在使用TimeSpan.MaxValue,所以我改用了100年:

$forever = $now.AddYears(100) - $now # [System.TimeSpan]::MaxValue doesn't work

但是,错误仍然相同。

我在Google上四处搜寻,发现了一个建议调查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree的建议,但是,我的任务没有出现在其中。

该怎么办?

1 个答案:

答案 0 :(得分:6)

根本不要设置const got = require("got"); (async () => { const response = await got('https://www.amazon.com/'); console.log(response.body); })(); 参数。 默认情况下,它将无限期执行此操作。

-RepetitionDuration

使用上述脚本创建的任务 Task scheduler trigger

对于您的错误,我在尝试执行脚本时遇到的全部错误已经很清楚了。它特别指出“最大”时间跨度不是可接受的值。

Register-ScheduledTask:任务XML包含一个值为 格式错误或超出范围。 (8,42):持续时间:P99999999DT23H59M59S在线:8字符:1 + Register-ScheduledTask -TaskName'TEST'-InputObject $ task + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ + CategoryInfo:未指定:(PS_ScheduledTask:Root / Microsoft / ... S_ScheduledTask) [Register-ScheduledTask],CimException + FullyQualifiedErrorId:HRESULT 0x80041318,Register-ScheduledTask