我正在尝试使用 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
但是,错误仍然相同。
我用谷歌搜索并找到了一个值得研究的建议HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
但是,我的任务并没有出现在那里。
该怎么办?
只是不要设置-RepetitionDuration
根本没有参数。
默认情况下,它将无限期地执行此操作。
$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
$settings = New-ScheduledTaskSettingsSet
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask -TaskName 'TEST' -InputObject $task
Task created using the script above
至于你的错误,我在尝试执行你的脚本时遇到的完整错误已经足够清楚了。它特别表明“最大”时间跨度不是可接受的值。
Register-ScheduledTask :任务 XML 包含一个值,该值是
格式不正确或超出范围。
(8,42):持续时间:P99999999DT23H59M59S 行:8 个字符:1
+ 注册-ScheduledTask -TaskName 'TEST' -InputObject $task
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+ 类别信息:未指定:(PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask)
[注册计划任务],CimException
+FullyQualifiedErrorId:HRESULT 0x80041318,注册计划任务
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)