web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Retrieve a power autom...
Power Automate
Unanswered

Retrieve a power automate flow with powershell

(0) ShareShare
ReportReport
Posted on by 691

Hello, I would like to make a PowerShell script where I use the "GetFlow" function to retrieve a Power Automate flow.

 

Here is my config file:

 

 

{
 "tenantId" : "0000000-0000-0000-0000-00000000", 
 "certifThumb" : "QHFHGELGEJGQJFOQQJEQJGJQLKGJQEGJEKL",
 "appId" : "0000000-0000-0000-0000-00000000",
 "triggerHour" : "01:00",
 "outputFile" : ".\\flow-stats.txt",
 "errorsFile" : ".\\flow-errors.txt",
 "dataFile" : ".\\flow-data.json",
 "flows" : [
 {
 "name": "Flux",
 "mailbox": "aaaaaa@aaaa.onmicrosoft.com",
 "serviceAccount" : "PS_FLOW"
 }
 ]
}

 

 

(Obviously I changed the confidential values to send the script here)

 

Here is my powershell script:

 

 

$ErrorActionPreference = "Stop"

$PSModulesNames = "Microsoft.PowerApps.PowerShell", "Microsoft.PowerApps.Administration.PowerShell"
$configFileName = "Flow-Stats.config"
$jsonDateFormat = "o" #2022-03-23T16:37:51.8011737+01:00

$PSModulesNames | ForEach-Object {
 Import-Module $_ -EA SilentlyContinue
 $module = Get-Module -Name $_
 if($null -eq $module) {
 throw "Module '$_' not found"
 }
}

$config = Get-Content ".\$configFileName" -Encoding UTF8 -EA SilentlyContinue | ConvertFrom-Json -EA SilentlyContinue
if($null -eq $config) {
 throw "Error reading config file '$configFileName'"
}

#Add-PowerAppsAccount -TenantID $config.tenantId -CertificateThumbprint $config.certifThumb -ApplicationId $config.appId

$data = Get-Content ".\$($config.dataFile)" -Encoding UTF8 -EA SilentlyContinue | ConvertFrom-Json -EA SilentlyContinue
if($null -eq $data) {
 $data = [PSCustomObject]@{
 lastExec = [datetime]::MinValue.ToString($jsonDateFormat)
 }
}
$lastExec = Get-Date $data.lastExec
$now = Get-Date
$flowIds = @{}

function GetFlowRuns {
 param(
 [string] $FlowName,
 [datetime] $Start,
 [datetime] $End
 )
 $runs = @(Get-FlowRun -FlowName $FlowName | Where-Object {
 $date = Get-Date $_.StartTime
 return $date -ge $Start -and $date -lt $End
 })
 $runCount = $runs.Count
 $errors = @($runs | Where-Object { $_.Status -eq "Failed" })
 $errorsCount = $errors.Count
 return [PSCustomObject]@{
 runCount = $runCount
 errorCount = $errorsCount
 errors = $errors | ForEach-Object {
 return [PSCustomObject]@{
 date = (Get-Date $_.StartTime).ToString($jsonDateFormat)
 message = $_.Internal.properties.error.message
 }
 }
 }
}

 

 

But unfortunately when I run my powershell script nothing happens. Could you help me please ? Thanks in advance !

Categories:
I have the same question (0)

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 462 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 456 Moderator

#3
abm abm Profile Picture

abm abm 243 Most Valuable Professional

Last 30 days Overall leaderboard