Skip to content

Get-Flow

PowerApps: Retrieves information about flows

#Requires -Version 5.1
#Requires -Modules Microsoft.PowerApps.PowerShell

[CmdletBinding(DefaultParameterSetName = "Filter")]
Param(
    [Parameter(Mandatory = $true, ParameterSetName = "Filter")]
    [Parameter(Mandatory = $true, ParameterSetName = "Flow")]
    [pscredential]$PACredential,

    [Parameter(Mandatory = $true, ParameterSetName = "Flow")]
    [string]$FlowName,

    [Parameter(ParameterSetName = "Filter")]
    [string]$Filter,

    [Parameter(ParameterSetName = "Filter")]
    [switch]$My,

    [Parameter(ParameterSetName = "Filter")]
    [switch]$Team,

    [Parameter(ParameterSetName = "Filter")]
    [int]$Top = 50,

    [Parameter(ParameterSetName = "Filter")]
    [Parameter(ParameterSetName = "Flow")]
    [string]$EnvironmentName,

    [Parameter(ParameterSetName = "Filter")]
    [Parameter(ParameterSetName = "Flow")]
    [string]$ApiVersion,

    [Parameter(ParameterSetName = "Filter")]
    [Parameter(ParameterSetName = "Flow")]
    [ValidateSet('*', 'DisplayName', 'FlowName', 'Enabled', 'EnvironmentName', 'CreatedTime', 'LastModifiedTime', 'UserType', 'Internal')]
    [string[]]$Properties = @('DisplayName', 'FlowName', 'Enabled', 'EnvironmentName', 'LastModifiedTime')
)

Process {
    try {
        ConnectPowerApps4Creators -PAFCredential $PACredential

        $getArgs = @{ ErrorAction = 'Stop' }

        if ($PSCmdlet.ParameterSetName -eq "Filter") {
            if ($My) { $getArgs.Add('My', $true) }
            if ($Team) { $getArgs.Add('Team', $true) }
        }
        else { $getArgs.Add('FlowName', $FlowName) }

        if ($PSBoundParameters.ContainsKey('ApiVersion')) { $getArgs.Add('ApiVersion', $ApiVersion) }
        if ($PSBoundParameters.ContainsKey('EnvironmentName')) { $getArgs.Add('EnvironmentName', $EnvironmentName) }
        if ($PSBoundParameters.ContainsKey('Filter')) { $getArgs.Add('Filter', $Filter) }
        if ($PSBoundParameters.ContainsKey('Top')) { $getArgs.Add('Top', $Top) }

        $result = Get-Flow @getArgs -ErrorAction Stop | Select-Object $Properties

        if ($null -ne $result) {
            foreach ($item in $result) {
                $item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format "yyyy-MM-dd HH:mm:ss") -PassThru -Force
            }
        }
    }
    catch { throw }
    finally { DisconnectPowerApps4Creators }
}

PowerApps credentials for authentication

Find a specific flow by name

Filter flows by display name (wildcards supported)

Off

Show only flows owned by the authenticated user

Off

Show flows owned by user but shared with others

Limit the result count

Limit to a specific environment

API version to call

Properties to retrieve. Use * for all.

An interactive directory of PowerShell scripts.