为Powershell中的计划任务创建每月触发器(具有其他条件)

问题描述 投票:0回答:1

我目前正在处理一个脚本,该脚本在运行时会创建一些计划任务,这些任务使主机执行多项操作,然后在指定的时间范围内重新启动。该脚本需要在多个域控制器上运行,因此,我想通过使用New-ScheduledTaskTrigger -RandomDelay之类的方法来“负载均衡”,以使它们不会立即全部重新引导,而是将其散布开来。

目标是能够更改何时重新启动的某些变量,例如:

  1. [每月的第一个星期一18:00至23:59
  2. [每个星期四01:00至06:00
  3. 每天从04:00到.....您每天都会看到我要去的地方

但是在New-ScheduledTaskTrigger中没有“ -Monthly”这样的东西>

这是第一个问题,这个问题我可能可以在其他职位的帮助下解决,但是如果我这样做,例如this,则无法使用-RandomDelay,我认为这是此功能的主要功能工作。

我想这是-Monthly是否工作(每月触发)的样子:

$rebootFrequency = MONTHLY # DAILY, WEEKLY, MONTHLY
$rebootWeek = FIRST        # FIRST, SECOND, THIRD, FOURTH, LAST
$rebootDayOfWeek = MON     # MON, TUE, WED, THU, FRI, SAT, SUN
$rebootTimeFrom = 10:00    # HH:MM[:SS]
$rebootTimeTo = 16:00      # HH:MM[:SS]


New-ScheduledTaskTrigger -"$rebootFrequency" -WeekOfMonth $rebootWeek;
-DayOfWeek $rebootDayOfWeek -At $rebootTimeFrom -RandomDelay $rebootTimeTo

您对我应该如何解决此问题有任何建议吗?

我可以用schtask.exe做同样的事情,但是我最终不得不制作某种脚本来执行“ RandomDelay”功能。

如果有任何疑问,请随时询问。预先感谢。

挑战1

我现在已经可以使用它了,但是我试图使脚本更加直观,但是我不知道该怎么做...

我想做的是将使用天数(例如,星期四为16)“转换”为能够写“ THU”。

现在看起来像这样:

$rebootDaysOfWeek = "16" # SUN=1, MON=2, TUE=4, WED=8, THU=16 etc.
$trigger.DaysOfWeek = $rebootDaysOfWeek

但是如果它是这样的话,我会觉得它更酷:

$rebootDaysOfWeek = "THU" # SUN, MON, TUE, WED, THU, FRI, SAT
$trigger.DaysOfWeek = $rebootDaysOfWeek

但是我似乎找不到找到一种方法来“转换” $ rebootDaysOfWeek以使用位掩码。

我目前正在处理一个脚本,该脚本在运行时会创建一些计划任务,这些任务使主机执行多项操作,然后在指定的时间范围内重新启动。该脚本需要运行...

windows powershell scheduled-tasks taskscheduler dayofmonth
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.