cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
s44
Super User
Super User

Retrieve a power automate flow with powershell

Hello, I would like to make a PowerShell script where I use the "GetFlow" function to retrieve a Power Automate flow. But unfortunately when I run my powershell script nothing happens. Could you help me please ? 😞

Thanks in advance !

 

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
            }
        }
    }
}

 

 

 

 

 

 

 

 

 

0 REPLIES 0

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Users online (4,741)