こんにちは、藤田です。
今回は「Power Automate for Desktop(以下PAD)で作ったフローを、Windowsのタスクスケジューラで定期実行できるようにした話」を、技術的背景から構成例、バッチスクリプト、ログ出力まで整理して残します。
🧠 なぜタスクスケジューラでPADを実行したいのか
PADは基本的にGUI操作中心なので、フローの実行は「アプリを開いてボタンを押す」スタイル。しかし業務自動化においては「定期的な処理を勝手に回したい」場面が多いですよね?
✅ 例えば:
- 毎朝7時にExcelを読み込んでPDF帳票を作成
- 毎週金曜にブラウザからデータを取得し、CSV保存
- 毎晩22時にファイル整理 → NASへ自動保存
このように、PADのフローは定期実行との相性が抜群です。しかもWindows標準の「タスクスケジューラ」で運用できるので、特別なサーバー構成も不要。
💡前提環境と想定読者
項目 | 内容 |
---|---|
OS | Windows 10 / 11(ProまたはEnterprise推奨) |
アカウント | ローカル管理者権限あり |
PAD | インストール済み(フロー完成済) |
実行対象 | GUIベースのExcel帳票作成/PDF変換/通知 など |
想定読者 | RPAに興味がある個人・情シス・副業エンジニア など |
🛠️ 準備1:PADのフロー名と実行方式を確認する
PADは「クラウドフロー」と「デスクトップフロー」に分かれていますが、今回対象とするのはローカルに保存されているデスクトップフローです。
PADのバージョンに応じて、実行可能なCLI(コマンドライン)ツールが異なりますが、以下のCLIが利用可能:
PAD.Console.Host.exe
これを使ってフロー名で起動できるようにします。
🔧準備2:実行用のバッチファイルを作成する
以下は、PADの特定フローをCLIで起動するバッチファイルの例です。
@echo off
setlocal
REM === Power Automate CLI 実行パス ===
set PADCLI="C:\Program Files (x86)\Power Automate Desktop\PAD.Console.Host.exe"
REM === 実行したいフロー名(GUI上で確認できる名前) ===
set FLOWNAME="冷蔵庫帳票作成フロー"
REM === 環境名(通常は Default-Environment) ===
set ENVNAME="Default-Environment"
REM === 実行ログの保存先 ===
set LOGFILE="%~dp0PAD_RunLog.txt"
REM === 実行コマンド ===
echo [%date% %time%] PAD フロー [%FLOWNAME%] 実行開始 >> %LOGFILE%
%PADCLI% run --flow "%FLOWNAME%" --environment "%ENVNAME%" >> %LOGFILE% 2>&1
echo [%date% %time%] PAD 実行完了 >> %LOGFILE%
endlocal
🔍補足ポイント
-
PADCLI
のパスはPADのインストール場所により異なるため、エクスプローラーで手動確認するのが安全。 -
--flow
に指定する名前は、Power Automateのデスクトップアプリに表示されている名前と一致させる必要があります。 - ログは
PAD_RunLog.txt
に保存。毎回の実行記録が残ります。
🕰️ タスクスケジューラの設定手順(GUIベース)
1. 「タスクスケジューラ」を管理者として起動
- スタートメニュー → 「タスクスケジューラ」と検索
- 右クリック → 管理者として実行(これ重要)
2. 「タスクの作成」で設定を行う
【全般】
- 名前:
PAD_自動実行_冷蔵庫フロー
- ユーザー:ローカル管理者を選択
- 「最上位の特権で実行」☑ チェック!
【トリガー】
- 「新規作成」
- タイプ:毎日/毎週/作業時間など自由に指定
- 開始時刻:07:00 等
- 有効にする ☑
【操作】
- 「新規作成」
- 操作:プログラムの開始
- プログラム/スクリプト:
run_fridge_flow.bat
のフルパス - 作業フォルダ:バッチファイルと同じフォルダを指定(推奨)
【条件】
- 必要なら「スリープ解除」などにチェック
- 「電源に接続されている場合のみ実行」などは用途に応じて変更
【設定】
- 「停止条件」や「再試行」などは任意
実行テスト
- 「タスクスケジューラライブラリ」に表示されたら、右クリック → 「実行」で手動テスト
- バッチが正常終了すればログに「開始/完了」が記録されるはず
🔍 ハマりポイント集と対策
問題 | 原因 | 対処 |
---|---|---|
フロー名が一致しない | GUI表示名と実際の内部名が微妙に違うことあり | GUI上からコピーする or PowerShellで一覧取得 |
バッチが実行されるがPADが開かない | 管理者権限 or UIFlowService未起動 | タスク作成時に「最上位の特権で実行」にチェック |
Excelが操作されない | UI前提のPAD操作が非対話環境で無効化 | スリープ解除/画面表示環境を確保する |
🧪ログ監視・通知の工夫
- ログ出力で「成功/失敗」を確認しやすく
- 処理完了後に
msg
コマンド or メール通知 - PowerShellを組み合わせればTeams通知も可能
例:簡単なログ通知(メール用)
powershell -Command "Send-MailMessage -To 'you@example.com' -From 'bot@example.com' -Subject 'PAD完了通知' -Body 'PADの自動実行が完了しました' -SmtpServer 'smtp.example.com'"
※SMTP周りの設定は環境に応じて変更必要
🧱応用構成と展望
- PowerApps連携:PowerApps側で送信されたフラグを定期監視してPAD実行
- クラウドトリガー対応:OneDriveやSharePointを監視対象にすることで、外部イベント→PAD自動起動が可能に
- RPA×AI:PADで処理した結果をAIで分類・チェック → 再起動条件に
✅まとめ:RPA × スケジューラ
メリット | 解説 |
---|---|
毎回手動実行不要 | バッチ化することで完全自動化が可能 |
Windows標準機能でOK | 追加ツール不要/導入コストゼロ |
複雑な業務にも対応 | GUI操作・ファイル処理・通知まで対応可能 |
Power Automate for Desktopは単体で見るとGUI自動化ツールですが、タスクスケジューラと組み合わせることで “シナリオ型のRPA運用” が可能になるんですよね。
🔚総括:以上、私自身の備忘録兼Tipsでした
業務自動化と聞くと、大げさなツールや高額なライセンスが必要なイメージがありますが、Power Automate for Desktop(PAD)とWindows標準機能だけでも、定期的な業務の多くを簡潔に回すことができます。
今回の備忘録は、以下のような方に特に参考になると思っています:
- 日次・週次のExcel帳票やPDF作成を手動で行っている人
- GUI操作の自動化を身近な業務に取り入れたい人
- RPAやPADに興味があるけど、実際どう動かすのかイメージがつかない人
- コストゼロでRPA構成を組みたい個人開発者や情シス担当者
また、PAD × タスクスケジューラの構成はスケーラブルではない代わりに圧倒的にシンプルで安定しています。何より、「勝手に動いて、勝手に終わってくれる安心感」は一度味わうと戻れません
✨備忘録としての追加メモ(今後の自分用)
- フロー実行ログの可視化をもっと強化したい
→ PowerShellでCSVログ化して、日次レポートを自動送信 - フローの同時実行制御(キュー化)を試したい
→ 同時に走らないよう実行前にロックファイルを使った設計を検討 - Teams通知と連携した実行状態の通知トリガー
→ PowerShellまたはPower Automateクラウドフロー経由でメッセージ送信 - GUI操作フローの安定化パターン集をまとめる記事を書く予定
→ 解像度依存・ウィンドウサイズ・座標指定の罠など
📤次の展開(もしQiitaに投稿するなら)
- 実行バッチファイルのコードをGistに公開してテンプレート化
- UIのスクリーンショットやPADのフロービューを図解付きで掲載
- PAD実行ログから成否判断するスクリプトを別記事化
🧊締めの一言
PAD × スケジューラ構成は、地味ですが便利。
そして「業務を毎日ちゃんと回してくれる静かな味方」になります。
私自身も、冷蔵庫アプリの帳票処理から始まって、少しずつ家族・仕事周りで活用範囲を広げています。
以上、私自身の備忘録兼Tipsでした。
また何か新しいRPA構成や応用事例ができたら、続編として書いていきたいと思います。
藤田でした。