SamplesV2/TriggerSchedulesUsingPowershell/UpcomingTriggerSchedule.ps1 (78 lines of code) (raw):

# Which Triggers are Scheduled to run, we have to get all pipeline schedules for the trigger, and print them with Pipeline Name, Date, Time Param( [Parameter(Mandatory=$true)] [string] $SubscriptionId, [Parameter(Mandatory=$true)] [string] $ResourceGroupName, [Parameter(Mandatory=$true)] [string] $DataFactoryName, [string] $TenantId ) $baseTriggerUri = "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.DataFactory/factories/$DataFactoryName/triggers/" #Connect-AzAccount -TenantId $TenantId -SubscriptionId $SubscriptionId $triggerlist = Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName $upcomingRunList = New-Object System.Collections.Generic.List[System.Object] Write-Host "Number of triggers in ADF: " $triggerlist.length # For each trigger, find all pipeline schedules and print them $triggerlist = Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName $upcomingRunList = New-Object System.Collections.Generic.List[System.Object] Write-Host "Number of triggers in ADF: " $triggerlist.length # For each trigger, find all pipeline schedules and print them foreach ( $trigger in $triggerlist ) { $azResourceUri = $baseTriggerUri +"/"+ $trigger.Name Write-Host $azResourceUri } $azResource = Get-AzResource -ResourceId $azResourceUri -ExpandProperties if ( $azResource.Properties.pipelines.pipelineReference.length -gt 0 ){ #Write-Host "Pipelines" #Write-Host "----------" #foreach ($pipeline in $azResource.Properties.pipelines.pipelineReference) { # Write-Host $pipeline.referenceName #} #Write-Host "----------" #Write-Host "Recurrence" $recurrence = $azResource.Properties.TypeProperties.recurrence #Write-Host $recurrence $today = Get-Date $upcomingRuns = "" $interval = $recurrence.interval # Determine Future run if ( $recurrence.frequency -eq "Minute") { $upcomingRuns = $today.AddMinutes($interval) } elseif ( $recurrence.frequency -eq "Hour" ) { $upcomingRuns = $today.AddHours($interval) } elseif ( $recurrence.frequency -eq "Day" ) { $upcomingRuns = $today.AddDays($interval) } elseif ($recurrence.frequency -eq "Month") { $upcomingRuns = $today.AddMonths($interval) } # Get the Date and Time of the schedule for the trigger of current pipeline Write-Host $trigger.Name " is scheduled to run on " $upcomingRuns.Date " at " $upcomingRuns.TimeOfDay # add to the list of upcoming to get all schedules for the pipelines and build new upcoming run list $obj = [PSCustomObject]@{ schedule = $upcomingRuns pipelines = $azResource.Properties.pipelines.pipelineReference } $upcomingRunList.Add($obj ) else { # no pipelines scheduled for the trigger } } #$upcomingRunList | Format-Table Write-Host "Upcoming pipeline runs" -ForegroundColor Green Write-Host "-----------------------------------------" $totalUpcomingPipeline = 0 foreach ( $schedules in $upcomingRunList ) { $DateStr = $schedules.schedule.ToString("yyyy-MM-dd") Write-Host -ForegroundColor Gray $DateStr " : Pipelines (" $schedules.pipelines.length ") " $schedules.pipelines.referenceName | Format-List $totalUpcomingPipeline += $schedules.pipelines.length Write-Host “Pipeline Name is “ $schedules.pipelines.referenceName Write-Host “Scheduled Date is “ $schedules.schedule.Date Write-Host “Scheduled Time is “ $schedules.schedule.TimeOfDay } Write-Host "-----------------------------------------" Write-Host " Number of upcoming pipeline runs: " $totalUpcomingPipeline Write-Host "-----------------------------------------"