Recuperar flujos de Power Automate eliminados
Que tal comunidad esperando que todos estén muy bien me gustaría compartirles en esta oportunidad un método para poder recuperar flujos de Power Automate eliminados por error.
Antes de iniciar me gustaría comentarles que este proceso ha sido probado solo para flujos fuera de ambientes o soluciones es decir solo para flujos eliminados desde las cuentas de usuarios enlistados en Mis Flujos.
Es muy común que por error, por que quizá «estábamos seguros de que ese era el flujo a borrar» uno de nuestros flujos de Power Automate sea borrado y entonces debemos recuperarlo. Tranquilo/Tranquila que en este post vas a aprender como recuperar un flujo de power automate borrado.
Lo primero que van a necesitar si es la primera vez que están realizando este proceso es ejecutar Power Shell como administrador e instalar los siguientes paquetes.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
dir . | Unblock-File
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber
Una vez ejecutados los paquetes y desbloqueadas sus políticas ahora procedemos a ejecutar nuestros scripts.
El primero será para poder obtener los flujos que se han eliminado de sus ambientes. Por favor reemplazar el Enviroment Name.
#DamoBird365
#PowerShell script to demo how to retrieve an array of deleted flows from a default environment
#Official Docs https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell
#www.DamoBird365.com
#www.youtube.com/c/DamoBird365
param (
[string]$EnvironmentName = "Default-1234506-1234-4174-1234-123456fa07da"
)
#Credentials if using RunBook
#$myCredential = Get-AutomationPSCredential -Name 'PPEnvironmentAdmin'
#$userName = $myCredential.UserName
#$securePassword = $myCredential.Password
#$password = $myCredential.GetNetworkCredential().Password
#Sign In To PowerApps PowerShell
Add-PowerAppsAccount # -Username $userName -Password $securePassword #If using RunBook
#Get ALL Flows (excluding deleted)
$NonDeletedFlows = Get-AdminFlow -EnvironmentName $EnvironmentName
#Get ALL Flows (including deleted)
$AllFlowsIncDeleted = Get-AdminFlow -EnvironmentName $EnvironmentName -IncludeDeleted $true
#Compare non with all to get deleted
$DeletedFlows = Compare-Object -ReferenceObject $NonDeletedFlows -DifferenceObject $AllFlowsIncDeleted -Property FlowName -PassThru
#Format Result as JSON
$DeletedFlowsJSON = $DeletedFlows | Select-Object -Property FlowName, DisplayName | ConvertTo-Json
Write-Output ($DeletedFlowsJSON)
#If you want a comma seperated string of FlowNames for Testing in PowerShell
$combined = $DeletedFlows | ForEach-Object { $_.FlowName }
$result = $combined -join ','
Write-Output ("")
Write-Output ($result)
Ahora vamos a recuperarlos usando el siguiente script.
Por favor no olvidar cambiar los ID de los flujos.
#DamoBird365
#PowerShell script to demo how to restore deleted flows from a default environment
#Official Docs https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell
#www.DamoBird365.com
#www.youtube.com/c/DamoBird365
param (
[string]$FlowsToRestoreString = "e4bde87d-9975-4323-ba02-3e9e871a796a",
[string]$EnvironmentName = "Default-1234506-1234-4174-1234-123456fa07da"
)
#Credentials if using RunBook
#$myCredential = Get-AutomationPSCredential -Name 'PPEnvironmentAdmin'
#$userName = $myCredential.UserName
#$securePassword = $myCredential.Password
#$password = $myCredential.GetNetworkCredential().Password
#Sign In To PowerApps PowerShell
Add-PowerAppsAccount # -Username $userName -Password $securePassword #If using RunBook
#Split string into an array
$FlowsToRestore = $FlowsToRestoreString.split(",");
#For each FlowName in the array, restore the flow
$FlowsRestored = foreach ($Flow in $FlowsToRestore) { Restore-AdminFlow -EnvironmentName $EnvironmentName -FlowName $Flow; Start-Sleep -Seconds 1 }
Write-Output ($FlowsRestored)
Y listo con estos sencillos pasos ya tendrán a sus flujos de regreso. Solo deben activarlos y desde luego la recomendación será tengan un Backup o respaldo.
Si quieren un poco más de información pero en inglés pueden ver este siguiente video: How to Restore a Deleted Power Automate Flow via PowerShell, Power Automate and Power Apps – YouTube