![Powershell - 每月最后一个星期二的 NewScheduledTaskTrigger](https://linux22.com/image/717109/Powershell%20-%20%E6%AF%8F%E6%9C%88%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E6%98%9F%E6%9C%9F%E4%BA%8C%E7%9A%84%20NewScheduledTaskTrigger.png)
不确定这是否属于 stackoverflow,因为它与 PowerShell 有关,但发布在这里,因为它不是脚本,而且与服务器任务更多相关。
我正在尝试重新创建我们在旧文件服务器上的任务,作为新故障转移群集上的群集任务。
为了做到这一点,我需要将操作和触发器设置为传递给 New-ClusteredScheduledTask 的变量。我执行此操作时没有出现问题,但我不知道如何运行 New-ScheduledTaskTrigger 以将其正确设置为每月的最后一个星期二。
我可以看到有每日和每周开关,以及每周间隔,但我不想依赖每周间隔,因为它并不总是落在每月的最后一个星期二?
有人可以建议如何使用可用的开关和值的组合来重新创建此触发器吗?
答案1
我认为这不能仅通过 PowerShell cmdlet 来完成。
我将在 GUI 中使用正确的触发器创建一个示例任务,并将其导出为 XML。
然后使用该 XML 创建一个新任务:Register-ScheduledTask -Xml
答案2
我过去曾尝试做类似的事情;但我从未找到使用 New-ScheduledTaskTrigger 来做这件事的方法。
最终,我最终将执行该检查的逻辑添加到我的脚本中,以便仅当该月剩余天数少于 7 天且当前日期为星期二时才会运行。
If(((([datetime]::DaysInMonth((Get-Date).Year,(Get-Date).Month) - (Get-Date).Day)) -le 7) -And ((Get-Date).DayOfWeek -eq "Tuesday"))
{
# Perform Task
}