技術情報ブログ
Power Platform
2022.09.28

削除したPower Apps・Power Automateの復元方法

削除したPower Apps・Power Automateの復元方法
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

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”です。

EnvironmentNameの確認(URL)
EnvironmentNameの確認(URL)

また、PowerShellにて以下コマンドを実行することでも確認可能です。

Get-AdminPowerAppEnvironment
EnvironmentNameの確認(PowerShell)
EnvironmentNameの確認(PowerShell)

 

AppName の確認方法

続いて、AppNameの確認方法です。

PowerShellコマンドで以下を実行します。
こちらのコマンドで、削除されたPower Appsの一覧を取得できます。

※「Guid」には、先程取得した「EnvironmentName」を記載してください。

Get-AdminDeletedPowerAppsList -EnvironmentName [Guid]

復元したいアプリの「AppName」を取得してください。

AppNameの確認(PowerShell)
AppNameの確認(PowerShell)

 

復元の実行

それでは、取得した「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」を取得してください。

FlowNameの確認(PowerShell)
FlowNameの確認(PowerShell)

 

復元の実行

それでは、取得した「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 Appsも物理的なバックアップは取得しておくに越したことはありません!

 

おわりに

今回は、削除したPower Apps・Power Automateの復元方法について説明しました。

誤って削除したPower AppsやPower Automateを復元する際には、PowerShellを用いることで対応可能です。

ただし、少々ハードルが高いので、定期的なバックアップも必要な事項ですね!

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き)、現在は東京都在住

1990年生まれ

30才でメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305

シェアする
記事カテゴリ
最新記事
2024.09.18

Power Automateのベストプラクティス・アンチパターン(6)【Power Automate上でExcelファイルを編集する際の注意点】

2024.06.26

一歩先へ進む企業のためのPower Platform内製化マニュアル:Power Apps・Power Automateの内製化に必要なリンク一覧

2024.06.05

【2024年6月更新】Power Automate 設計・構築時のTips集

2024.05.15

非エンジニア【(元)自治体職員】がローコード開発をして気が付いたこと コーディング規約とPower Platformプレミアムサンプルアプリ集

2024.05.01

Power Apps・Power Automateの勉強方法(2)

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化
PageTop
ページトップに戻る