如何使用 PowerShell 安排任务在周一至周五上午 8 点至下午 6 点之间每小时运行一次

如何使用 PowerShell 安排任务在周一至周五上午 8 点至下午 6 点之间每小时运行一次

我需要安排一项任务运行:

  • 星期一到星期五
  • 上午 8 点至下午 6 点,每小时

我可以从常规任务调度程序 GUI 执行此操作,但由于我使用组管理服务帐户来运行此任务,因此我需要从 powershell 执行此操作。

我已尝试在cmdlet 中使用-RepetitionDuration和参数,但为了使用它,我需要有?-RepetitionIntervalNew-ScheduledTaskTrigger-once parameter

请指教!

在此处输入图片描述

答案1

这是 Microsoft 记录的解决此问题的方法。

笔记: 您必须使用下拉框中提供的设置选项,即使 GUI 看起来是自由格式字段,但事实并非如此。

看:

使用 PowerShell 配置高级计划任务参数

缺失的参数

太好了,现在我们有了一个脚本,一个运行该脚本的计划任务,它将在每次启动服务器或工作站时运行。但我们未能满足其中一项要求;该任务还必须每 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"

相关内容