Power Automate iconPower Automate お助けレシピ集Power Automate お助けレシピ集 icon

定期バックアップしたSharePointのファイルを世代管理する

公開日: 2026-03-14|カテゴリ: ファイル・データ管理|難易度: 中級

解決できる課題

ファイルをバックアップした後、バックアップファイルが膨大に増えていませんか? ・バックアップファイルが多すぎて、どれが最新のものかわかりづらい ・バックアップ用フォルダのサイズが大きくなってしまう ・SharePointの世代管理がうまくできない ・一週間のバックアップだけあれば十分 Power Automateを使えば、バックアップの世代管理も簡単に実現可能です。

完成イメージ

Flowchart for 定期バックアップしたSharePointのファイルを世代管理する

必要なもの

  • SharePoint iconSharePoint コネクタ
  • データ操作 iconデータ操作 コネクタ

作り方

定期的なバックアップは万一に備えて必要ですが、バックアップしたファイルを管理しないと、運用に悪影響です。
特に世代管理は、必要な分だけを定期的に保持するので有効です。
 ※基本的なバックアップフローはSharePointファイルの定期バックアップをご参考ください

 

  • 1. トリガー「スケジュール済みクラウドフロー」を設定

世代管理の周期に合わせて設定します。
日次の場合、[間隔]と[頻度]は「1」と「日」にします。
これにより、毎日実行し、日ごとに世代管理を行います。
[開始時間]は「2026-03-14T15:01:00.000Z」(2026年3月15日 0時01分)などにします。
 ※画像は省略、SharePointファイルの定期バックアップを参考

 

  • 2. アクション「過去の時間の取得」を設定

バックアップの周期に合わせ、[間隔]と[時間単位]を設定します。
例えば、7日間分を保持する場合、「7」と「日」にします。
 ※3/14に実行する場合、3/7の日付を取得する(3/7以前のものを削除対象とし、3/8-13を保持する) バックアップ周期で設定

 

  • 3. アクション「ファイルの取得 (プロパティのみ)」を設定

バックアップ済みのファイル情報を取得します。
[サイトのアドレス]は、バックアップフォルダのあるサイトを選択します。
フォルダの指定は、詳細パラメーター内にある[エントリをフォルダーに制限する]を選択します。
サブディレクトリ内のファイルを取得

 

  • 4. アクション「アレイのフィルター処理」を設定

ステップ3で取得したファイル情報の一覧から、条件でフィルタリングします。
[From]は「body/value」にします。
[Filter Query]は、「Created」が「過去の時間」と比べて「より小さい」にします。
フィルター処理で削除対象を絞る

 

  • 5. 「For each」を設定

ステップ6にあるファイル削除のアクションで「ID」(ファイルの取得 (プロパティのみ))を設定すると、Foreachは自動的に追加されますが、このレシピでは異なります。
手動でForeachを追加します。
 ※Foreachの繰り返し処理は、ステップ3の取得値ではなく、ステップ4の取得値のため(後述)
[前のステップから出力を選択します]には、アレイのフィルター処理の「body」を設定します。
フィルターした配列を繰り返す

 

  • 6. アクション「ファイルの削除」を設定

[サイトのアドレス]はステップ3で設定したものと同じにします。
[ファイル識別子]は「現在の項目」(For each)にします。
削除対象のファイルを特定

 

  • 5. バックアップファイルの作成処理

ここは、SharePointファイルの定期バックアップレシピをご参考ください。
「ファイル メタデータの取得」から「ファイルの作成」までのフローは同じです。

 

  • 6. 動作確認

バックアップの世代管理をしていないと、下図のように古いものがたまりがちです。
バックアップファイルがたまる

 

フローを実行後、7日前よりも古いもの(3/14時点の場合、3/7以前のもの)を一括削除し、3/14分のバックアップを作成します。
7日前よりも古いものを削除

 

  • 7. やらない方が良いこと

下図は推奨しないフロー図です。
非推奨のフロー

 

下記は、ステップ5とステップ6に関する内容です。

ステップ6にあるファイル削除のアクションで「ID」(ファイルの取得 (プロパティのみ))を設定すると、Foreachは自動的に追加されますが、このレシピでは異なります。
手動でForeachを追加します。
 ※Foreachの繰り返し処理は、ステップ3の取得値ではなく、ステップ4の取得値のため

この非推奨のフローは、「ID」(ファイルの取得 (プロパティのみ))を指定してforeach処理を作り、foreach内で日付判定のifを追加したものです。
 ※この場合、ステップ4のアレイのフィルター処理は不要になる

foreach内のif処理は、取得した全てのファイルに対して日付判定を行うため、効率的ではありません。
それよりも、アレイフィルターを使い、あらかじめ日付判定を行った配列を使う方がスマートです。
 ※「取得した全てのファイル数 > 日付判定済みの絞ったファイル数」になるため

関連レシピ

広告
お問い合わせ