我正在尝试使用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包含格式错误或超出范围的值。
错误消息无用-如何调试?
这个答案说现在使用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
的建议,但是,我的任务没有出现在其中。
该怎么办?
答案 0 :(得分:6)
根本不要设置const got = require("got");
(async () => {
const response = await got('https://www.amazon.com/');
console.log(response.body);
})();
参数。
默认情况下,它将无限期执行此操作。
-RepetitionDuration
对于您的错误,我在尝试执行脚本时遇到的全部错误已经很清楚了。它特别指出“最大”时间跨度不是可接受的值。
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