通过PowerShell创建一次性Windows计划任务报错:ScheduleType值'Once'不支持
解决xScheduledTask中ScheduleType的有效值问题
我刚踩过一模一样的坑!你遇到的问题核心在于xScheduledTask这个DSC资源对ScheduleType属性的有效值有严格限定——它并不接受"Once",一次性任务对应的正确取值是"OneTime"。
报错原因拆解
这个资源的ScheduleType参数是枚举类型,允许的有效值集合固定为:Daily, Weekly, Monthly, OneTime, AtLogOn, AtStartup。你传入的"Once"不在这个列表里,所以PowerShell会触发那个"不支持或无效值"的报错。
修正后的代码示例
把脚本里的ScheduleType = "Once"替换成"OneTime"即可,这里给你一个完整的简化示例参考:
xScheduledTask CreateOneTimeTask { TaskName = "MyOneTimeTask" Action = New-CimInstance -ClassName MSFT_TaskAction -Namespace Root/Microsoft/Windows/TaskScheduler -Property @{ Execute = "powershell.exe" Argument = "-File C:\Scripts\MyScript.ps1" } -ClientOnly Trigger = New-CimInstance -ClassName MSFT_TaskTrigger -Namespace Root/Microsoft/Windows/TaskScheduler -Property @{ StartBoundary = (Get-Date).AddMinutes(5).ToString("yyyy-MM-dd'T'HH:mm:ss") Enabled = $true } -ClientOnly ScheduleType = "OneTime" # 这里是正确的一次性任务取值 User = "NT AUTHORITY\SYSTEM" }
小技巧避免踩坑
如果不确定某个DSC资源的参数有效值,可以用这条命令查看详细定义:
Get-DscResource -Name xScheduledTask | Select-Object -ExpandProperty Properties
输出里会明确列出每个参数的允许值范围,帮你快速排查参数取值问题。
内容的提问来源于stack exchange,提问作者msbyuva
相关产品推荐
相关产品推荐

