使用PowerShell创建每日重复计划任务遇参数兼容问题求助
解决PowerShell每日计划任务重复触发的问题
我懂你遇到的这个麻烦——New-ScheduledTaskTrigger的-Daily参数确实和重复触发相关的RepetitionDuration、RepetitionInterval参数互斥,没法直接在一条命令里同时使用。不过我们可以换个思路,手动修改触发器对象的属性来绕开这个限制,实现每日5:55开始、15小时内每30分钟触发一次的需求。
具体实现步骤:
创建基础的每日触发器
先生成一个每日5:55触发的基础触发器对象:$dailyTrigger = New-ScheduledTaskTrigger -Daily -At 5:55AM配置重复触发规则
直接修改触发器对象的Repetition属性,设置重复间隔和持续时长:# 设置每30分钟重复一次 $dailyTrigger.Repetition.Interval = (New-TimeSpan -Minutes 30) # 设置重复持续时间为15小时 $dailyTrigger.Repetition.Duration = (New-TimeSpan -Hours 15) # 确保持续时间结束后停止重复(避免无限触发) $dailyTrigger.Repetition.StopAtDurationEnd = $true定义任务动作
根据你的实际需求设置要执行的命令或脚本(以下是PowerShell脚本的示例,可自行修改路径):$taskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File 'C:\Your\Script\Path\your-task-script.ps1'"注册计划任务
最后把触发器和动作绑定,注册为新的计划任务:Register-ScheduledTask -TaskName "DailyRepeatingTask" -Trigger $dailyTrigger -Action $taskAction -Description "每日5:55开始,15小时内每30分钟执行一次任务"
原理说明:
New-ScheduledTaskTrigger返回的是一个CimInstance类型的触发器对象,我们可以直接修改它的属性,不需要依赖命令行参数的组合。这种方式完美避开了参数互斥的限制,同时完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Twinfriends
相关产品推荐
相关产品推荐

