答案1
这是 Microsoft 记录的解决此问题的方法。
笔记: 您必须使用下拉框中提供的设置选项,即使 GUI 看起来是自由格式字段,但事实并非如此。
看:
缺失的参数
太好了,现在我们有了一个脚本,一个运行该脚本的计划任务,它将在每次启动服务器或工作站时运行。但我们未能满足其中一项要求;该任务还必须每 10 分钟重复一次,持续 1 天。如果您返回并尝试添加重复间隔或重复持续时间,您会注意到 -AtStartup 参数中没有这两个选项:
通过 GUI 可以获得计划任务参数:
但是,如果您选择 -AtStartup 参数,则无法通过 PowerShell New-ScheduledTaskTrigger cmdlet 使用它们。它们可以通过 -Once 参数使用,但这不符合要求。解决方案是使用 XML 模式直接修改任务的属性。这乍一听可能很复杂,但实际上非常简单,并且可以让您修改计划任务的几乎每个参数。
步骤 1 - 获取计划任务。第一步是获取刚刚创建的计划任务并将其存储在对象中。
$Task = Get-ScheduledTask -TaskName "SampleScheduledTask"
步骤 2 - 更新您想要修改的任务的特定属性。在此示例中,我们希望添加重复持续时间和重复间隔。
$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT10M"
您可能想知道我如何知道 P1D 等于 1 天的持续时间,以及我如何知道 PT10M 等于 10 分钟的重复间隔,因为它们都不是您可能习惯使用的典型日期/时间或时间跨度值。为了获得这些值,我只需通过 GUI 配置所需的持续时间和间隔,然后使用以下命令通过 Powershell 查看结果:
$Task.Triggers.Repetition | fl *
步骤 3 - 将新配置保存到计划任务。请记住,您必须在此处重新输入任务的凭据,否则操作将失败。
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"