November 01, 2021

Export Flows from Microsoft Flow

# Install & Load Modules

Install-Module -Name Microsoft.PowerApps.Administration.PowerShell

Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber

set-executionpolicy bypass

Import-Module Microsoft.PowerApps.Administration.PowerShell

Import-Module Microsoft.PowerApps.PowerShell

# Login

Connect-AzureAD

Add-PowerAppsAccount

# Export All Flows to CSV

 $exportFolderPath = "c:\OneDriveTemp\"


$flows = Get-AdminFlow

 

$flowExport = [System.Collections.ArrayList]@();

 

# Loop through all flows to expand on the user property. 

foreach ($flow in $flows) {

 

    $custFlow = New-Object -TypeName psobject 

 

    $custFlow | Add-Member -MemberType NoteProperty -Name FlowName -Value $flow.FlowName

    $custFlow | Add-Member -MemberType NoteProperty -Name Enabled -Value $flow.Enabled

    $custFlow | Add-Member -MemberType NoteProperty -Name DisplayName -Value $flow.DisplayName

    $custFlow | Add-Member -MemberType NoteProperty -Name CreatedTime -Value $flow.CreatedTime

    $custFlow | Add-Member -MemberType NoteProperty -Name EnvironmentName -Value $flow.EnvironmentName

    $custFlow | Add-Member -MemberType NoteProperty -Name LastModifiedTime -Value $flow.LastModifiedTime

 

    # Get the email of the user who created the flow. 

    try {

        $user = Get-AzureADUser -ObjectId $flow.CreatedBy.userId

        $custFlow | Add-Member -MemberType NoteProperty -Name CreatedBy -Value $user.Mail

    } catch {

        $custFlow | Add-Member -MemberType NoteProperty -Name CreatedBy -Value 'NOT FOUND IN AAD'

    }

 

    $flowExport.Add($custFlow) | Out-null

}

 

# Export to CSV.

$flowExport | Export-Csv -Path ($exportFolderPath + 'Flows1.csv') -Delimiter ',' -NoTypeInformation



# Other Commands

Get-AdminPowerAppEnvironment

Get-AdminPowerAppEnvironment –Default

Get-AdminPowerAppEnvironment –EnvironmentName 'EnvironmentName'


Get-AdminPowerApp

Get-AdminPowerApp 'DisplayName'


Get-AdminFlow