Power AppsやPower Automateを作成している際、誤って削除したことはありませんか?
削除してしまうと、Power Apps・Power Automateの一覧画面から復元することはできません。
しかし、PowerShellを用いると、復元することは可能です。
今回は、削除したPower Apps・Power Automateの復元方法について説明します。
前提条件
はじめに、注意事項を記載いたします。
-
復元することができるのは、Power Platform管理者権限のみ
Power Automateの場合、復元できるのは最大で28日前まで
(※Power Appsに関する制限はMS Docsから見つけることが出来ませんでしたが、おそらく上記と同程度の条件だと推測されます。詳細ご存知な方がいらっしゃれば教えてください!(笑))
Power Automateに関する詳細については、以下URLを参照してください。
Restore deleted flows with PowerShell
Power Apps・Power Automateの復元手順
それぞれの手順を以下にて説明します。
アプリ作成者と管理者用のPowerShellコマンドレットをインストール
まずは、アプリ作成者と管理者用のPowerShellコマンドレットをインストールします。
詳細については、以下URLを参照してください。
Power Apps の PowerShell サポート
インストールするには、以下コマンドをPowerShell上で実行してください。
※PowerShellは「管理者として実行する」にて起動してください。
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber
インストール中、ポリシーの変更を要求されることがあるかと思いますが、全て「Y」で同意してください。
PowerShell実行ポリシーの変更
続いて、PowerShellの実行ポリシーを変更します。
PoweShellの実行ポリシーとは、PowerShellがコマンドを実行する条件を制御する機能であり、悪意のあるスクリプトの実行、コマンドの誤操作を防ぐためのものです。実行ポリシーの詳細については、以下URLを参照してください。
about_Execution_Policies
今回は、ポリシーを「RemoteSigned」に変更します。
Set-ExecutionPolicy RemoteSigned
ここまでで事前準備が完了です。
以降では、実際に環境にサインインし、復元作業を行います。
サインイン
PowerShellにて以下コマンドを実行します。
Add-PowerAppsAccount
サインイン画面が出てきますので、サインインしてください。
(サインインする環境が複数ある場合は、復元したいリソースがある環境を選択してください。)
復元(Power Apps編)
それでは、実際にPower Appsを復元していきます。
Power Appsの復元コマンドは以下です。
Get-AdminRecoverDeletedPowerApp -AppName [Guid] -EnvironmentName [Guid]
コマンドの詳細は以下を参照してください。
Get-AdminRecoverDeletedPowerApp
上記コマンドの「AppName」と「EnvironmentName」の確認方法について、以下で説明します。
EnvironmentName の確認方法
先に、「EnvironmentName」の確認方法について説明します。
こちらは、Power Appsの編集のURLから確認することが可能です。
https://make.powerapps.com/をブラウザのURLに入力
サインイン
URLの「~/environments/〇〇/home」の〇〇部分が”EnvironmentName”です。
また、PowerShellにて以下コマンドを実行することでも確認可能です。
Get-AdminPowerAppEnvironment
AppName の確認方法
続いて、AppNameの確認方法です。
PowerShellコマンドで以下を実行します。
こちらのコマンドで、削除されたPower Appsの一覧を取得できます。
※「Guid」には、先程取得した「EnvironmentName」を記載してください。
Get-AdminDeletedPowerAppsList -EnvironmentName [Guid]
復元したいアプリの「AppName」を取得してください。
復元の実行
それでは、取得した「EnvironmentName」と「AppName」をもとに、復元しましょう。
復元コマンドは、前述したとおりです。
Get-AdminRecoverDeletedPowerApp -AppName [Guid] -EnvironmentName [Guid]
上記コマンドを実行すると、Power Appsが無事復元できていることが分かると思います!
※稀にPower Appsの一覧画面に表示されないことがあります。
その場合は、少し時間を置くか、別のアプリを作成・保存し、一覧画面へ戻ると表示されると思います。
復元(Power Automate編)
続いて、Power Automateの復元を行います。
Power Automateの復元コマンドは以下です。
Restore-AdminFlow -FlowName [Guid] -EnvironmentName [Guid]
コマンドの詳細は以下を参照してください。
上記コマンドの「EnvironmentName」の確認方法については前述した手順と同様です。
「FlowName」の確認方法について説明します。
FlowNameの確認方法
PowerShellコマンドで以下を実行します。
こちらのコマンドで、削除されているorされていないにかかわらず、すべてのPower Aumateの一覧を取得できます。
※「Guid」には、先程取得した「EnvironmentName」を記載してください。
Get-AdminFlow -EnvironmentName [Guid] -IncludeDeleted $true
復元したいアプリの「FlowName」を取得してください。
復元の実行
それでは、取得した「EnvironmentName」と「FlowName」をもとに、復元しましょう。 復元コマンドは、前述したとおりです。
Restore-AdminFlow -FlowName [Guid] -EnvironmentName [Guid]
上記コマンドを実行すると、Power Automateが無事復元できました!
※稀にPower Automateの一覧画面に表示されないことがあります。
その場合は、少し時間を置くか、別のフローを作成・保存し、一覧画面へ戻ると表示されます。
補足:やっぱりバックアップは大事!
いかがでしたでしょうか?
上記手順を行っていただくと、Power AppsやPower Automateを復元することは可能です。
ただし、権限がPower Platformの管理者権限が必要だったり、PowerShellを使用したりと、少々ハードルが高くなってしまいます。。。
基本だとは思いますが、上記手順を行わなくてもいいように、定期的にバックアップを取得することは大事だなと再確認しました。
補足の補足:Power Appsのバージョン復元について
Power Appsにはバージョン管理機能があるため、物理的なバックアップは不要だと思っていませんか? 実は、バージョンの復元は過去6ヶ月以内に作成されたバージョンのみという制約があります。
よって、Power Appsも物理的なバックアップは取得しておくに越したことはありません!
おわりに
今回は、削除したPower Apps・Power Automateの復元方法について説明しました。
誤って削除したPower AppsやPower Automateを復元する際には、PowerShellを用いることで対応可能です。
ただし、少々ハードルが高いので、定期的なバックアップも必要な事項ですね!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200
こんにちは。アーティサン株式会社の小刀稱(ことね)です。