Power Automate Desktopを定期実行する方法|タスクスケジューラで決まった時間に動かす手順と注意点

Power Automate Desktop(PAD)のフローを毎朝9時に自動で動かしたいと思っても、無料のPADには「スケジュール」の設定がありません。この記事では、Windowsのタスク スケジューラとフローの「URLを実行」を使って、決まった時間にフローを起動する方法を、Windows 11で実際に試した結果とあわせて紹介します。
先にお伝えすると、そのままでは起動はできるものの、毎回「フローを実行」の確認画面が出て、[続行]を押すまで実行されませんでした。レジストリの値を1つ追加すると確認画面が出なくなり、誰も操作しなくても時間どおりに実行されたので、その方法と注意点もあわせて紹介します。
- Power Automate Desktopのフローを毎日決まった時間に動かしたい
- タスク スケジューラからフローを起動する方法を知りたい
- タスクを登録したのに時間になってもフローが動かない

先に結論|タスク スケジューラで起動し、確認画面はレジストリで消す
| 確かめたこと | 結果 |
|---|---|
| 無料のPADにスケジュール機能はあるか | ない(コンソール・デザイナー・設定のどこにもない) |
| フローの「URLを実行」を開くと動くか | 動く。ただし毎回「フローを実行」の確認画面が出る |
| タスク スケジューラから起動できるか | 起動できた。ただし確認画面で[続行]を押すまで実行されない(2分以上待っても進まなかった) |
| 確認画面を消せるか | レジストリに EnableAskBeforeRunningAFlowExternally=0 を追加すると確認画面なしで、無人で実行できた(設定画面には項目が出ない) |
| ノートパソコンでタスクが動かない | タスクの既定の条件「AC電源で使用している場合のみ」が原因。バッテリー駆動だと開始されなかった |
確認した環境:Windows 11 Home 26H2、Power Automate Desktop 11.2610.155.0(Microsoft Store版)、個人のMicrosoftアカウント(無料)。
無料のPower Automate Desktopにはスケジュール機能がない
PADのコンソール(フローの一覧)の︙メニューは「実行/停止/編集/名前の変更/削除/コピーを作成する/デスクトップ ショートカットを作成/プロパティ」で、時間を指定して動かす項目はありません。デザイナーや設定画面にも見当たりませんでした。
決まった時間に動かすには、Windowsのタスク スケジューラから、フローを起動するURLを開く方法を使います。Microsoftの公式ドキュメントにも、この方法が載っています。
手順1:テスト用のフローを用意する
動いたかどうかを確かめやすいように、現在の日時をテキストファイルに1行ずつ書き足すだけのフローを作りました。

アクションの一覧で探して置いてもよいですし、次の文字をコピーして、デザイナーのフローの部分にCtrl+Vで貼り付けると同じ2つのアクションができます(書き込み先のフォルダー C:\Users\Public\PADテスト は先に作っておきます)。
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
File.WriteText File: $'''C:\\Users\\Public\\PADテスト\\実行ログ.txt''' TextToWrite: CurrentDateTime AppendNewLine: True IfFileExists: File.IfFileExists.Append Encoding: File.FileEncoding.UTF8保存したら、デザイナーの▶で一度実行して、実行ログ.txt に日時が書かれることを確かめておきます。
手順2:フローの「URLを実行」をコピーする
- PADのコンソールで、フローの︙ →「プロパティ」を開く
- 「詳細情報」タブの「URL を実行」の横のコピーのボタンを押す

コピーされるURLは次の形でした。個人のMicrosoftアカウントでは、環境IDの部分が one-drive-environment-Id という決まった文字になっていました。
ms-powerautomate:/console/flow/run?environmentid=one-drive-environment-Id&workflowid=<フローID>&source=Other手順3:URLを開いて動くか確かめる
コピーしたURLをエクスプローラーのアドレス欄やブラウザーに貼り付けて開くと、少し待ってから次の確認画面が出ました。

[続行]を押すと、ステータスが「ダウンロード中」になってから実行され、次の通知が出ました。

手順4:タスク スケジューラにタスクを登録する
タスク スケジューラ(スタートメニューで「タスク スケジューラ」と検索)で「基本タスクの作成」または「タスクの作成」を選び、トリガー(毎日 9:00 など)を決めたら、操作を次のように設定します。

| 項目 | 入力する内容(Microsoft Store版のPAD) |
|---|---|
| 操作 | プログラムの開始 |
| プログラム/スクリプト | C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe |
| 引数の追加 (オプション) | -Command "Start-Process \"(コピーしたURL)\"" |
引数は、URLの部分を自分のURLに置き換えて、次のように入れます。
-Command "Start-Process \"ms-powerautomate:/console/flow/run?environmentid=one-drive-environment-Id&workflowid=<フローID>&source=Other\""ノートパソコンでタスクが動かないときは「条件」タブを確認
最初に登録したタスクは、時間になっても何も起きませんでした。タスク スケジューラの「前回の実行時刻」は 1999/11/30 0:00:00(一度も実行されていない)、「前回の実行結果」は 0x41303(まだ実行されていない)のままです。
原因は、タスクの「条件」タブにある「コンピューターを AC 電源で使用している場合のみタスクを開始する」でした。この項目は最初からオンになっていて、試したノートパソコンはバッテリーで動いていたため、タスクが開始されませんでした。

チェックを外して次の時刻を待つと、タスクは時間どおりに実行されました(前回の実行結果 0x0)。バッテリーに切り替わったときに止めたくない場合は、下の「コンピューターの電源をバッテリに切り替える場合は停止する」も外しておきます。
注意:確認画面で止まり、無人では実行されない
タスクは時間どおりに動き、PADのコンソールが開きました。ところが、URLを手で開いたときと同じ「フローを実行」の確認画面が出て、そこで止まりました。

確認画面を出したまま2分以上待っても、フローは実行されず、実行ログ.txt に行は増えませんでした。[続行]を押すと、その時点で実行されました。つまりこのままでは、パソコンの前にいて[続行]を押せる時間にしか使えません。
確認画面を出さずに無人で実行する(レジストリ)
Microsoftの公式ドキュメントには、確認画面を出さないようにする方法として、次の2つが書かれています。
- コンソールの設定で「フローを外部から呼び出すときに確認のダイアログを表示する」をオフにする
- レジストリ
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Power Automate Desktopに、DWORD値EnableAskBeforeRunningAFlowExternallyを0で作る
試したパソコン(個人アカウント・Store版 11.2610)では、設定の「全般」タブに1つ目の項目はありませんでした(レジストリの値を作ったあとも出てきませんでした)。

そこで2つ目のレジストリを試しました。
1. レジストリの値を追加する
スタートメニューで「PowerShell」と検索して開き(管理者でなくてかまいません)、次のコマンドを実行します。
New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Power Automate Desktop" -Name EnableAskBeforeRunningAFlowExternally -PropertyType DWord -Value 0 -Forceレジストリ エディターで追加する場合は、HKEY_CURRENT_USER\SOFTWARE\Microsoft\Power Automate Desktop を開き、[編集]→[新規]→[DWORD (32 ビット) 値]で名前を EnableAskBeforeRunningAFlowExternally、値を 0 にします。
2. 結果:確認画面なしで、時間どおりに実行された
値を追加してからURLを開くと、確認画面は出ずに、そのままフローが実行されました(PADは起動し直さずに試しました)。
続けて、タスク スケジューラに2分後のタスクを登録してパソコンに触らずに待つと、時刻どおりにフローが実行され、実行ログ.txt に行が増えて、完了の通知が出ました。

3. 元に戻すときは値を消してからPADを起動し直す
確認画面を元に戻すときは、次のコマンドで値を消します。
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Power Automate Desktop" -Name EnableAskBeforeRunningAFlowExternally「ユーザーがログオンしているときのみ実行する」のままにする
PADのフローは、画面に表示されたコンソールの中で動きます。タスクの「全般」タブの「ユーザーがログオンしているときのみ実行する」(既定)のままにしておきます。

パソコンがスリープしていると動かないので、スリープ中に動かしたい場合は「条件」タブの「タスクを実行するためにスリープを解除する」も確認してください(スリープ解除の設定は、記事の最後で紹介しています)。
よくある質問
- Power Automate Desktopだけでスケジュール実行できますか?
無料のPower Automate Desktopには、スケジュールを設定する機能はありませんでした。Windowsのタスク スケジューラからフローのURLを開く方法を使います。
- タスク スケジューラに登録したのに動きません。
ノートパソコンなら、タスクの「条件」タブの「コンピューターを AC 電源で使用している場合のみタスクを開始する」を確認してください。最初からオンになっていて、バッテリー駆動だと開始されませんでした。
- 「フローを実行」の確認画面を出さない方法はありますか?
レジストリの HKEY_CURRENT_USER\SOFTWARE\Microsoft\Power Automate Desktop に DWORD値 EnableAskBeforeRunningAFlowExternally を 0 で追加すると、確認画面なしで実行されました。セキュリティ上の危険があると公式ドキュメントに書かれているので、自己責任で行ってください。
- レジストリの値を消したのに確認画面が出ません。
試したところ、値を消してもPower Automateを完全に終了して起動し直すまで反映されませんでした。
- フローがすでに実行中のときにタスクが動いたらどうなりますか?
公式ドキュメントでは、フローがすでに実行されている場合、URLを呼び出してもフローは再度実行されないと説明されています。
まとめ
- 無料のPower Automate Desktopにはスケジュール機能がない
- フローのプロパティの「URL を実行」を、タスク スケジューラから開くと起動できる
- ノートパソコンは「AC 電源で使用している場合のみ」のチェックを外さないと、バッテリー駆動のとき動かない
- そのままでは起動のたびに「フローを実行」の確認画面が出て、[続行]を押すまで実行されなかった
- レジストリに
EnableAskBeforeRunningAFlowExternally=0を追加すると、確認画面なしで無人で実行できた(セキュリティの注意あり・戻すときはPADを起動し直す)
クラウド版のPower Automateで、営業日だけ動かす定期実行の作り方はこちらです。

タスク スケジューラでスリープ中のパソコンを起こして実行する設定は、こちらで紹介しています。






