Назад | Перейти на главную страницу

Powershell - NewScheduledTaskTrigger за последний вторник каждого месяца

Не уверен, что это относится к stackoverflow, поскольку это относится к PowerShell, но опубликовано здесь, поскольку это не сценарии и больше связано с серверной задачей.

Я пытаюсь воссоздать задачу, которая у нас есть на нашем старом файловом сервере, в виде кластерной задачи на нашем новом отказоустойчивом кластере.

Для этого мне нужно установить действие и триггер в качестве переменных для передачи в New-ClusteredScheduledTask. Действие, которое я выполнил без проблем, но я не уверен, как запустить New-ScheduledTaskTrigger, чтобы правильно установить его на последний вторник каждого месяца.

Я вижу, что есть переключатели Daily и Weekly, а также WeeklyInterval, но я не хочу полагаться на недельные интервалы, так как они не всегда будут приходиться на последний вторник месяца?

Может кто-нибудь посоветовать, как воссоздать этот триггер, используя комбинацию доступных переключателей и значений?

Я пытался сделать что-то подобное в прошлом; и я так и не нашел способа сделать это с помощью 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
} 

Я не думаю, что это можно сделать только с помощью командлетов PowerShell.

Я бы создал образец задачи в графическом интерфейсе с правильным триггером и экспортировал его как XML.

Затем используйте этот XML для создания новой задачи: Register-ScheduledTask -Xml