Variables $ResourceGroupName = "ResourceGroupName " $LogicAppName = "logic-app-standard" $WorkflowName = "workflow1" $SubscriptionId = "SubscriptionId"
Timeframe: Last 24 hours $StartTime = (Get-Date).AddHours(-24).ToString("o") $EndTime = (Get-Date).ToString("o")
Get Access Token for REST API Calls $AccessToken = (Get-AzAccessToken -ResourceUrl https://management.azure.com).Token
List Runs within the last 24 hours $RunsUrl = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Logic/workflows/$WorkflowName/runs?api-version=2019-05-01&$filter=startTime ge $StartTime and startTime le $EndTime" $Runs = Invoke-RestMethod -Method Get -Uri $RunsUrl -Headers @{ Authorization = "Bearer $AccessToken" }
Filter Runs for "Running" or "Waiting" status $RunningRuns = $Runs.value | Where-Object { $.status -eq "Running" -or $.status -eq "Waiting" }
Cancel Each Run foreach ($Run in $RunningRuns) { $RunId = $Run.name $CancelUrl = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Logic/workflows/$WorkflowName/runs/$RunId/cancel?api-version=2019-05-01" Write-Host "Cancelling Run ID: $RunId" Invoke-RestMethod -Method Post -Uri $CancelUrl -Headers @{ Authorization = "Bearer $AccessToken" } }
Write-Host "All eligible runs have been cancelled."
$Runs.value | ForEach-Object { Write-Host "Run ID: $($.name), Status: $($.status)" }