В настоящее время я работаю над сценарием, который при запуске создает некоторые запланированные задачи, которые заставляют хост-компьютер делать несколько вещей, а затем перезапускаются в течение указанного промежутка времени. Этот сценарий должен быть запущен на нескольких контроллерах домена, и поэтому я хотел бы «сбалансировать нагрузку», используя что-то вроде New-ScheduledTaskTrigger -RandomDelay, чтобы они не перезагружались все сразу, а как бы распространяли его.
Цель состоит в том, чтобы иметь возможность изменять некоторые переменные времени, когда необходимо перезапустить, например:
- Первый понедельник месяца с 18:00 до 23: 59
- Каждый четверг с 01:00 до 06:00
- Каждый день с 04:00 до ..... вы видите, куда я иду
Однако такого не бываеткак «-Monthly» в New-ScheduledTaskTrigger
Это первая проблема, эту, которую я, вероятно, могу решить с помощью других постов, но если я сделаю это, например, this IЯ не могу использовать -RandomDelay, который, как мне кажется, является основной функцией для этой работы.
Вот как я должен выглядеть, если -Monlyly работал (для ежемесячного триггера):
$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 для работы с битовой маской.