В настоящее время я получаю расписание заданий для существующего задания SQL и хочу получить значения частоты его выполнения, т. Е. Ежедневно, еженедельно, ежемесячно и т. Д. c, а затем узнать, когда оно должно выполняться Далее, и если работа выполняется в выходные дни. Я понимаю, как получить всю эту информацию, выполнив
Get-SqlAgent -ServerInstance "$SERVER" | Get-SqlAgentJob $job | Get-SqlAgentJobSchedule | Format-List -Property *
Это показывает мне всю относительную информацию, которая мне нужна
Parent : Test_Job
ActiveEndDate : 12/31/9999 12:00:00 AM
ActiveEndTimeOfDay : 23:59:59
ActiveStartDate : 3/4/2020 12:00:00 AM
ActiveStartTimeOfDay : 00:00:00
DateCreated : 3/4/2020 2:08:00 PM
FrequencyInterval : 1
FrequencyRecurrenceFactor : 0
FrequencyRelativeIntervals : First
FrequencySubDayInterval : 2
FrequencySubDayTypes : Hour
FrequencyTypes : Daily
IsEnabled : True
JobCount : 1
Я смотрю на страницу Microsoft о том, как понять все частоты информация, но пока кажется, что единственный вариант - это иметь кучу вложенных операторов IF, которые определяют, как часто он выполняется. Я могу сделать это таким образом, но я решил, что должен быть более чистый способ получения необходимой мне информации. Вот как я сейчас разбираю информацию
if($frequency -eq "DAILY")
{
$MINUTES_LATEST_RUN_SUCCESS = "1500"
#Code here to see how often it runs in a day
}
elseif($frequency -eq "WEEKLY")
{
$MINUTES_LATEST_RUN_SUCCESS = "11520"
#Code here to see how how many days a week it runs
}
elseif($frequency -eq "MONTHLY")
{
$MINUTES_LATEST_RUN_SUCCESS = "50400"
#Code here to see how which day it runs a month
}
else
{
$MINUTES_LATEST_RUN_SUCCESS = "1500"
}
Я подумал, что это не самый лучший подход.