Get All Ruining Power Automate (Flows) Using PowerShell
Clear-Host
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
#Add-PowerAppsAccount
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
$OutputFilePath = "$scriptPath\FlowRuns.csv"
try { Remove-Item $OutputFilePath } catch{}
$flowRunHeaders = "Flow,Name,Run Count,Last Run Date, Last Run Status";
Add-Content -Path $OutputFilePath -Value $flowRunHeaders
function GetRuns
{
param
(
[Parameter(Mandatory = $true)]
[string]$FlowName,
[Parameter(Mandatory = $true)]
[string]$EnvironmentName
)
process
{
if ($EnvironmentName -ne $null -and $FlowName -ne $null)
{
$TimeoutInMinutes = 2
$ApiVersion = "2016-11-01"
$getRunsUri = "https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/scopes/admin/environments/{environmentName}/flows/{flowName}/runs?api-version={apiVersion}" `
| ReplaceMacro -Macro "{environmentName}" -Value $environmentName `
| ReplaceMacro -Macro "{flowName}" -Value $flowName;
#"&`$filter=properties/startTime gt 2020-10-01" `
$runsResult = InvokeApi -Method GET -Route $getRunsUri -ApiVersion $ApiVersion #-Verbose $false
# Write-Host $runsResult.value.Count
Write-Output $runsResult
}
}
}
$flows = Get-AdminFlow
foreach($flow in $flows)
{
#Get the details around who created the flow
$FlowEnvironmentName = $flow.EnvironmentName
$Name = $flow.FlowName
if (-not [string]::IsNullOrWhiteSpace($FlowEnvironmentName)){
$runs = GetRuns -EnvironmentName $FlowEnvironmentName -FlowName $Name
Write-Host $flow.DisplayName " - " $runs.value.Count
$runProperties = $runs.value | Foreach-Object { $_.properties.startTime = [DateTime]$_.properties.startTime; $_} | Sort-Object $._.properties.startTime | Select-Object -Last 1 properties
$lastRun = $runProperties.startTime;
$lastStatus = $runProperties.status;
Add-Content -Path $OutputFilePath -Value ($flow.FlowName + ',' + ($flow.DisplayName -replace '[,]') + ',' + $runs.value.Count + ',' + $lastRun + ',' + $lastStatus)
#foreach ($run in $runs.value) {
# Write-Host $run.properties
#}
}
}
Comments
Post a Comment