PowerShell Cmdlets for PowerApps and Flow creators and administrators

Many of you have been asking for access to PowerApps and Flow control through PowerShell. This week we have released an extended version of the PowerApps PowerShell script functions (cmdlets) that provide admin access to resources on their instance of PowerApps, Flow, and the Business Application Platform in the PowerShell environment.

Updates

2019-01-07: Cmdlets are now available on the PowerShell gallery as two separate modules: Administrator (link) and Maker (link).

2019-04-29: Updated cmdlet names

Cmdlets

Cmdlets are functions written in PowerShell script language that execute commands in the Windows PowerShell environment. Running these PowerApps cmdlets will allow you to interact with your Business Application Platform without having to go through the admin portal in a web browser. You can combine these cmdlets with other PowerShell functions to write complex scripts that can optimize your workflow. Note that you can still use the cmdlets if you’re not an admin on the tenant, but you will be limited to the resources you own. Cmdlets that start with the word ‘Admin’ are designed to be used by an administrative user account.

If you are prompted to accept the change to InstallationPolicy value of the repository, accept [A] Yes to all modules by typing in ‘A’ and hitting enter for each module.

Before accessing any of the commands, you have the option to provide your credentials using the following command. These credentials are refreshed for up to ~8 hours before you’re required to sign in again to continue using the cmdlets.

Prerequisite

App creators

Users with a valid PowerApps license can perform the operations in these cmdlets, but they will only have access to the resources (for example, apps, flows, etc.) that have been created or shared with them.

Administrators

To perform the administration operations in the admin cmdlets, you’ll need the following:

A paid PowerApps Plan 2 license or a PowerApps Plan 2 trial license. You can sign-up for a 30-day trial license at https://web.powerapps.com/trial. Trial licenses can be renewed if they’ve expired.

Display a list of all PowerApps that match the input display name

Feature an application

Set-AdminPowerAppAsFeatured –AppName 'AppName'

Featured applications are grouped and pushed to the top of the list in the PowerApps mobile player.

Note: Like environments, the AppName field is a unique identifier, which is different from the DisplayName. If you want to perform operations based on the display name, some functions will let you use the pipeline (see next function).

Make an application a Hero app, using the pipeline

Get-AdminPowerApp 'DisplayName' | Set-AdminPowerAppAsHero

A Hero app will appear at the top of the list in the PowerApps mobile player. There can only be one Hero app.

The pipeline (represented as the ‘|’ character between two cmdlets) takes the output of the first cmdlet and passes it as the input value of the second, assuming the function has been written to accommodate the pipeline feature.

Note: an app must already be a featured app before it is changed to a hero.

Display the number of apps each user owns

You can combine native PowerShell functions with the PowerApps cmdlets to manipulate data even further. Here we use the Select function to isolate the Owner attribute (an object) from the Get-AdminApp object. We then isolate the name of the owner object by pipelining that output into another Select function. Finally, passing the second Select function output into the Group function returns a nice table that includes a count of each owner’s number of apps.

Download PowerApps user details

The above command will store the PowerApps user details (basic usage information about the input user via their user principal name) in the specified text file. It will create a new file if there is no existing file with that name, and overwrite the text file if it already exists.

Display Flow Owner Role details

Note: Like Environments and PowerApps, FlowName is the unique identifier (guid), which is different from the display name of the Flow.

Display Flow user details

Get-AdminFlowUserDetails –UserId $Global:currentSession.userId

Returns the user details regarding Flow usage. In this example we’re using the user Id of the current logged in user of the PowerShell session as input.

Remove Flow user details

Remove-AdminFlowUserDetails –UserId 'UserId'

Deletes the details on a Flow user completely from the Microsoft database. All Flows the input user owns must be deleted before the Flow user details can be purged.

Note: The UserId field is the Object ID of the user’s Azure Active Directory record, which can be found in the Azure Portal ( https://portal.azure.com) under Azure Active Directory > Users > Profile > Object ID. Must be an admin to access this data from here.

Export all Flows to a CSV file

Get-AdminFlow | Export-Csv -Path '.\FlowExport.csv'

This command exports all the Flows in your tenant into a tabular view .csv file.

Api Connection Commands

View and manage API connections in your tenant.

Display all native Connections in your default environment

Get-AdminPowerAppEnvironment -Default | Get-AdminConnection

Displays a list of all Api Connections you have in the default environment. Native connections are found under the Data > Connections tab in the maker portal.