#PowerPlatformTip 2: 'Transfer PowerApp Ownership'
TL;DR: Install
Microsoft.PowerApps.Administration.PowerShellin Windows PowerShell 5.x, sign in withAdd-PowerAppsAccount, find the apps withGet-AdminPowerAppand hand them over withSet-AdminPowerAppOwner. The previous owner keeps “Can view”. For a UI, use the CoE Starter Kit admin apps.
💡 Challenge
When a maker leaves the company, the canvas apps they own stay behind with an owner who no longer exists. Reassigning ownership through the maker UI one by one is slow and easy to miss. You need a reliable, admin-friendly way to hand over Power Apps ownership.
✅ Solution
Use an admin approach instead of the maker UI: either the CoE Starter Kit admin apps (for a governed, low-code experience) or the Set-AdminPowerAppOwner cmdlet from the Microsoft.PowerApps.Administration.PowerShell module for scripted, bulk changes.
🔧 How It’s Done
1. Prepare PowerShell
🔸 Use Windows PowerShell 5.x. The module is built on .NET Framework and doesn’t run in PowerShell 6 or later. Check with $PSVersionTable.PSVersion.
🔸 Install the module and sign in:
1
2
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -Scope CurrentUser
Add-PowerAppsAccount
🔸 Add-PowerAppsAccount opens a sign-in prompt. Sign in with an account that has the Power Platform administrator role (or Global administrator), otherwise you only see apps you own.
2. Find the apps and the IDs
🔸 Set-AdminPowerAppOwner needs IDs, not display names: the app name (AppName, a GUID), the environment name (EnvironmentName, a GUID or Default-<tenant ID> for the default environment) and the new owner’s Microsoft Entra object ID.
1
2
3
4
# All apps of the departed maker, by display name of the owner
Get-AdminPowerApp |
Where-Object { $_.Owner.displayName -eq 'Max Muster' } |
Select-Object DisplayName, AppName, EnvironmentName
🔸 The object ID of the new owner is on the user’s profile in the Microsoft Entra admin center (Users > user > Object ID).
3. Set the new owner
1
Set-AdminPowerAppOwner -AppName '<AppName GUID>' -EnvironmentName '<EnvironmentName>' -AppOwner '<new owner object ID>'
🔸 For all apps of one maker in one go:
1
2
3
4
5
6
$newOwner = '<new owner object ID>'
Get-AdminPowerApp |
Where-Object { $_.Owner.displayName -eq 'Max Muster' } |
ForEach-Object {
Set-AdminPowerAppOwner -AppName $_.AppName -EnvironmentName $_.EnvironmentName -AppOwner $newOwner
}
4. Verify the result
🔸 Run the Get-AdminPowerApp query again or open the app’s details in Power Apps: the new owner is listed as Owner, the previous owner as Can view.
Alternative without PowerShell: deploy the CoE Starter Kit and use its admin apps to inventory apps by owner and reassign them.
🎉 Result
Ownership is reassigned cleanly, no orphaned apps, no manual clicking through each app. Admins keep full control and governance stays intact.
🌟 Key Advantages
🔸 Admin-grade: works even when you’re not the current owner, using admin permissions.
🔸 Scales: one pipeline reassigns every app of a departed maker.
🔸 Governed: fits into a CoE / governance offboarding process for departing makers.
⚠️ Good to Know
🔸 The new owner also needs access to the data behind the app (SharePoint list, Dataverse table, SQL database). Ownership of the app doesn’t grant data permissions.
🔸 Connections are personal. If the app uses connections of the previous owner, for example in flows it calls, those need to be checked separately (see Tip 20 for flows).
🛠️ FAQ
1. Can I reassign ownership of multiple apps at once?
Yes. Pipe the result of Get-AdminPowerApp into ForEach-Object and call Set-AdminPowerAppOwner for each app, as shown in step 3.
2. Do I need admin privileges?
Yes. To change the owner of apps you don’t own, you need the Power Platform administrator or Global administrator role. Without it, the cmdlets only return resources you own or that are shared with you.
3. What happens to the previous owner?
Set-AdminPowerAppOwner sets the new owner and changes the previous owner to the “Can view” role. They keep read access but no longer own the app. Remove that role with Remove-AdminPowerAppRoleAssignment if the account should lose access completely.
🔗 Related Tips
🔸 #PowerPlatformTip 20: ‘Change Flow Owner’ - the same ownership-transfer problem, solved solution-aware for Power Automate flows.
🔸 #PowerPlatformTip 48: ‘Sharing of Flows and Power Apps’ - best practices for permissions and collaboration once ownership is settled.
This tip is by Marcel Lehmann, Microsoft MVP (Business Applications) and founder of the Power Platform Academy – live Power Platform workshops, free or CHF 49. Join the workshop waitlist to get notified about new dates. For companies that want this implemented for them, see KMUpower – Power Platform consulting & automation for SMEs (DACH).