Power Automate Desktopのスケジュール実行:クラウドフローから動かす・無人で動かす

公開 書いた人 大林 諒

Power Automate for desktop(Power Automate Desktop)で作ったフローは、そのままでは誰かがパソコンの前で「実行」を押さないと動きません。毎朝・毎週・月末に決まった時刻で動かすには、クラウドフローから呼ぶか、Windowsのタスク スケジューラから呼ぶかのどちらかが要ります。この記事では、サンプル工務店の事務のパソコン(Windows 11 Pro)で動いている「発注一覧のExcelを読み、建材の発注サイト order.example に入力する」フローを、平日の朝に自動で動かすところまでを書きます。読み終わると、どの動かし方にどのライセンスが要り、パソコンをどういう状態にしておけば止まらないかが分かります。フローは入力変数 TargetMonth と IsTest を持ち、手動で最後まで動くところまで済んでいる前提です。

この記事の内容
  1. 先に決めること
  2. 動かし方の一覧
  3. クラウドフローから動かす手順
  4. パソコンがスリープ・ロック・サインアウトのときに何が起きるか
  5. タスク スケジューラから動かす
  6. 応用
  7. 無人実行は本当に要るか
  8. できないことと、その代わり
  9. よく詰まるところ
  10. 次にやること

先に決めること

最初に決めるのは「その時刻にパソコンの前に人がいるか」です。ここで動かし方とライセンスがほぼ決まります。

  • 人がサインインしている時間帯に動かすなら、アテンド型で足ります。Power Automate Premium が1人分あれば始められます
  • 夜間や早朝、誰もサインインしていない時間に動かすなら、非アテンド型です。マシンに Power Automate Process が要ります
  • 動かすパソコンを1台に決めます。マシンは1つの環境にしか登録できず、あとで環境を変えると、そのマシンを使う接続が消えます
  • 接続を作る人を決めます。ライセンスが要るのは接続を作った人で、その人のWindowsアカウントで動きます。辞めそうにない人か、業務用のアカウントにします
  • 失敗したときに誰が見るかを決めます。夜間に止まっても朝まで誰も気づかない作りにしないためです

動かし方の一覧

動かし方要るライセンス(2026年10月時点)その時刻のパソコンの状態向く場面
コンソールから手動で実行Windowsのライセンスの範囲(ローカル実行のみ)誰かがサインインして操作中試作・月に数回だけ
タスク スケジューラからURLで実行Premium(または従量課金の環境)対象のユーザーでサインイン中クラウドを使えない事情があるとき
クラウドフローから呼ぶ(アテンド型)Premium接続のユーザーでサインインし、ロックを解除勤務時間内に毎日動かす
クラウドフローから呼ぶ(非アテンド型)Process(マシンに1ボット)全員がサインアウト夜間・早朝・休日に動かす

料金は公式の料金ページで、Power Automate Premium がユーザー1人あたり月額2,248円、Power Automate Process がボット1つあたり月額22,488円です(年間契約・税抜、2026年10月時点)。Microsoft 365 Business Standard に含まれる Power Automate は標準コネクタのクラウドフローまでで、デスクトップフローを呼ぶコネクタは Premium の扱いです。Windowsのライセンスで使えるアテンド型は、そのパソコンで手動で動かすローカル実行だけで、クラウドからの呼び出しは含まれません。公式に用意された自動起動の手段は、どれも Premium 以上が要ります。

クラウドフローから動かす手順

勤務時間内に動かすアテンド型で書きます。非アテンド型との違いは、あとで実行モードを切り替えるだけです。

マシンを登録する

  1. 事務のパソコンに Power Automate for desktop を入れ直すか、インストーラーを起動し、マシン ランタイム アプリをインストールする選択肢をオンにする
  2. スタートメニューから「Power Automate マシン ランタイム」を開く
  3. 職場のアカウントでサインインする
  4. 登録先の環境が、フローを置いている環境になっているか確かめる
  5. Power Automate の画面で「監視」→「マシン」を開き、そのパソコンが一覧に出ていることを確かめる
Power Automate マシン ランタイムで、サインイン後に登録先の環境名とマシン名が表示されたところ
Power Automate マシン ランタイムで、サインイン後に登録先の環境名とマシン名が表示されたところ

登録には、その環境で「環境作成者」か「デスクトップ フロー マシン所有者」のロールが要ります。Windows の Home エディションには登録できません。パソコンを初期化すると登録は消えるので、修理や入れ替えのときは登録し直します。

接続を作る

  1. Power Automate の画面で「データ」→「接続」→「新しい接続」を選ぶ
  2. 「デスクトップ フロー」を検索して選ぶ
  3. 「ユーザー名とパスワードで接続する」を選ぶ
  4. 「マシンまたはマシン グループ」で事務のパソコンを選ぶ
  5. 「ユーザー アカウント」に、そのパソコンにサインインするWindowsアカウントを入れる
  6. 「パスワード」を入れて「作成」を押す
デスクトップ フローの新しい接続で、マシン・ユーザー アカウント・パスワードを入れたところ
デスクトップ フローの新しい接続で、マシン・ユーザー アカウント・パスワードを入れたところ

ユーザー アカウントの書き方は、Microsoft Entra 参加のパソコンなら user@sample-koumuten.example、ドメイン参加なら domain\user、ローカルアカウントなら MACHINENAME\user です。ここを間違えると、実行時に資格情報のエラーで止まります。アテンド型だけなら「サインインで接続」も選べますが、Entra か Active Directory に参加したパソコンが前提です。デスクトップ フローの接続は他の人と共有できません。担当が替わったら、新しい担当が接続を作り直します。

クラウドフローを作る

  1. 「マイ フロー」→「新しいフロー」→「スケジュール済みクラウド フロー」を選ぶ
  2. フロー名を「発注入力_平日朝」にし、開始日時と繰り返しの間隔を決めて「作成」を押す
  3. トリガー「繰り返し」を開き、「頻度」を「週」、「設定曜日」を月曜〜金曜、「設定時刻」を 9、「設定分」を 15、「タイム ゾーン」を (UTC+09:00) 大阪、札幌、東京 にする
  4. トリガーの下の「+」から「アクションの追加」を選び、「デスクトップ用 Power Automate」を検索する
  5. 「デスクトップ用 Power Automate で構築したフローを実行する」を選ぶ
  6. 「接続」で、さっき作った接続を選ぶ
  7. 「デスクトップ フロー」で「発注入力」を選ぶ
  8. 「実行モード」で「アテンド型」を選ぶ
  9. 入力変数の欄に値を入れる(次の節)
  10. 保存し、「テスト」→「手動」で一度動かす
新しいデザイナーで、繰り返しトリガーの下に「デスクトップ用 Power Automate で構築したフローを実行する」を置き、実行モードにアテンド型を選んだところ
新しいデザイナーで、繰り返しトリガーの下に「デスクトップ用 Power Automate で構築したフローを実行する」を置き、実行モードにアテンド型を選んだところ

アテンド型には「参加モード」があり、デスクトップでそのまま動かすか、ピクチャ イン ピクチャで動かすかを選べます。ピクチャ イン ピクチャにすると、別の小さな画面で動くので、事務Bが横で作業していてもマウスを取り合いません。発注サイトの入力のように画面を使う処理で、人の作業と重なる時間に動かすときに使います。

入力を渡して、出力を受け取る

デスクトップフロー側で作った入力変数は、アクションの欄としてそのまま出てきます。入力変数は、変数名・データ型・外部名称を決めて作ったものです。外部名称がクラウドフローの欄の名前になるので、日本語の分かりやすい名前にしておくと、あとで見る人が迷いません。

欄(外部名称)入れる値意味
対象月formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),'yyyy-MM')今月の発注を入力する
テスト実行false本番の発注サイトに入れる

月の境目でずれないように、utcNow() は日本時間に直してから月を取り出します。入力の合計は2MBまでなので、Excelの中身を丸ごと渡すような使い方はせず、ファイルの場所や月だけを渡し、中身はデスクトップフロー側で読みます。パスワードを渡す入力変数は「機密としてマーク」にしておくと、実行履歴に値が残りません。

出力変数も同じで、デスクトップフローに FailedRows(入力できなかった行の一覧)を出力変数として作っておくと、後ろのアクションで動的なコンテンツとして選べます。これを Teams の投稿に入れると、どの行を手で直せばいいかが朝のうちに事務に届きます。

非アテンド型に切り替える

アテンド型で動いたフローを、夜間に動かす非アテンド型に変えるときの手順です。

  1. Power Platform 管理センターで、フローを置いている環境に Process の容量を割り当てる
  2. Power Automate の「監視」→「マシン」で事務のパソコンを開き、非アテンド型ボットを割り当てる(必要なときに自動で割り当てる設定もある)
  3. Windows の設定でリモート デスクトップを有効にし、接続のユーザーを「リモート デスクトップ ユーザー」グループに入れる
  4. クラウドフローのアクションで「実行モード」を「非アテンド型」に変える
  5. 「繰り返し」の「設定時刻」を、全員が退勤したあとの時刻に変える
  6. 退勤時にサインアウトした状態で、テストを一度動かす
監視のマシン一覧から開いたマシンの詳細で、非アテンド型ボットの割り当て状況が見えるところ
監視のマシン一覧から開いたマシンの詳細で、非アテンド型ボットの割り当て状況が見えるところ

Process をマシンに割り当てると、そのマシンを非アテンド型で使うクラウドフローは、マシンのボットでまとめて扱われます。1台のパソコンで非アテンド型のフローを2本同時に動かしたいなら、ボットも2つ要ります。続けて何本も動かす場合は、マシンの「設定」にある「非アテンド型の実行に対してセッションを再利用する」を使うと、毎回サインインし直す時間を減らせます。

実行履歴で確かめる

クラウドフローの実行履歴を開くと、デスクトップフローのアクションに、どのマシンで動いたか、何分かかったか、失敗ならどのエラー コードかが出ます。「監視」→「デスクトップ フローの実行」では、デスクトップフロー側のアクションごとの記録も見られます。最初の1週間は毎朝この2か所を見て、所要時間のばらつきを確かめておくと、タイムアウトや実行時刻の見直しが早くなります。

パソコンがスリープ・ロック・サインアウトのときに何が起きるか

本番で一番止まるのはここです。動かし方ごとに、パソコンの状態でどうなるかを並べます。

パソコンの状態アテンド型非アテンド型
接続のユーザーでサインインし、ロック解除動く動かない(同じユーザーのセッションがあるとエラー)
サインインしたまま画面がロック動かない動かない(Windows 10・11では、ロック中でもセッションがあると動かない)
全員がサインアウト動かない動く(裏でセッションを作って動かす)
スリープ・電源オフマシンがオフラインになり、動かない同じ

アテンド型は、接続のユーザーでサインインしていて、しかもロックが解除されていないと動きません。昼休みに画面ロックがかかる設定のパソコンだと、その時間に入れた実行は失敗します。勤務時間内でも、実行の時刻は人が確実に席にいる時間を選びます。

非アテンド型は、マシン上にリモート デスクトップのセッションを作って動かします。Windows 10・11 では、誰か1人でもサインインしている(ロック中も含む)とセッションを作れないので、退勤時は必ずサインアウトします。動いている間の画面はロックされたままで、管理者権限では動きません。画面の解像度が作ったときと違うことがあるので、ウィンドウの位置や大きさに頼った操作は避けます。動いている最中に誰かがサインインすると失敗することもあります。

スリープ中や電源オフのとき、マシンはオフラインになります。公式では、実行がキューで待てるのは最大12時間とされています。オフラインのまま待たせると、いつ動き出すか、いつ失敗になるかが読めなくなるので、動かすパソコンはスリープしない電源設定にしておきます。

タスク スケジューラから動かす

クラウドフローを使わず、Windowsのタスク スケジューラから直接動かす方法もあります。ただし公式の前提は、Power Automate for desktop が入っていて、ユーザーがサインインしており、Premium を持っているか従量課金の環境に入れることです。無料で時刻起動ができる抜け道ではありません。

  1. デスクトップフローの名前を確かめる(ここでは「発注入力」)
  2. タスク スケジューラで「基本タスクの作成」を選ぶ
  3. トリガーで「毎日」や「毎週」と時刻を決める
  4. 操作で「プログラムの開始」を選ぶ
  5. 「プログラム/スクリプト」に次のパスを入れる
  6. 「引数の追加」に実行用のURLを入れる
C:\Program Files (x86)\Power Automate Desktop\dotnet\PAD.Console.Host.exe
"ms-powerautomate:/console/flow/run?workflowName=発注入力&inputArguments={\"TargetMonth\":\"2026-11\",\"IsTest\":false}"

これはインストーラー(MSI)で入れた場合です。Microsoft Store から入れた場合は、「プログラム/スクリプト」に powershell.exe、引数に -Command "Start-Process \"ms-powerautomate:/console/flow/run?workflowName=発注入力\"" を入れます。inputArguments で渡せるのはテキスト・数値・ブール値だけで、JSONとしてエスケープします。

既定では、外から呼ばれるたびに確認のダイアログが出ます。コンソールの設定「フローを外部から呼び出すときに確認のダイアログを表示する」をオフにすると出なくなりますが、どこからでもフローを起動できるようになるので、公式もセキュリティ上のリスクとして書いています。この方法はローカルのアテンド型扱いで、同時に動くのは1本だけ、すでに動いているフローは呼んでも動きません。失敗したときに誰かが気づけるよう、知らせる仕組みはフローの中に自分で作っておきます。

タスク スケジューラの操作の編集画面で、プログラム/スクリプトにPAD.Console.Host.exe、引数の追加にURLを入れたところ
タスク スケジューラの操作の編集画面で、プログラム/スクリプトにPAD.Console.Host.exe、引数の追加にURLを入れたところ

応用

祝日と年末年始を避ける

「繰り返し」は祝日を知りません。SharePoint リストに「稼働しない日」を作り、クラウドフローの先頭で今日の日付があるかを調べ、あれば「終了」で抜けます。デスクトップフローの中で判定するより、クラウド側で止めるほうが、パソコンを無駄に動かさずに済みます。

失敗をTeamsに知らせる

クラウドフローで「デスクトップ用 Power Automate で構築したフローを実行する」の後ろに Teams の投稿を置き、その投稿の「設定」→「実行条件」で「失敗」と「タイムアウト」だけにチェックを入れます。デスクトップフローの中で「フローを停止する」を「エラーメッセージ付き」で終わらせると、そのメッセージが呼び出し元に返り、アクションの失敗として扱われます。投稿にはアクションのエラー内容を入れておくと、何が起きたかが Teams だけで分かります。

Teamsへの投稿アクションの実行条件で、失敗とタイムアウトにチェックを入れたところ
Teamsへの投稿アクションの実行条件で、失敗とタイムアウトにチェックを入れたところ

失敗した瞬間の動画を残す

非アテンド型では、アクションの「詳細パラメーター」で「ビデオ ログ」を有効にできます。Power Automate for desktop 2.66以降で、失敗の前60秒が録画され、パソコンの %localappdata%\Microsoft\Power Automate Desktop\VideoLogs に保存されます。誰も見ていない時間の失敗は、これがないと原因の見当がつきません。

1台に頼らない

マシン グループを作り、2台以上のパソコンを入れておくと、空いているほうで動きます。グループには最大50台まで入れられます。小さな会社で2台目のパソコンを常時空けておくのは難しいので、現実的には「1台が止まったら手で動かす手順書」を用意しておくほうが先です。パソコンの更新や修理の間は、「監視」→「マシン」→対象のマシン→「設定」で「メンテナンス モードを有効にする」にしておくと、その間の実行が入りません。

監視のマシン一覧から開いたマシンの設定で、メンテナンス モードのスイッチが見えるところ
監視のマシン一覧から開いたマシンの設定で、メンテナンス モードのスイッチが見えるところ

無人実行は本当に要るか

非アテンド型は便利ですが、毎月の費用と手間が増えます。Process はボット1つで月額22,488円、年に約27万円です(年間契約・税抜、2026年10月時点)。アテンド型で運用していた構成に足すと、Premium 1人分の月額2,248円の10倍になります。1つのボットが同時に動かせる非アテンド型のフローは1本だけです。

Process だけ買えば無人で動くわけではありません。ライセンスの公式ページでは、Process をマシンに割り当てて無人実行に使うには、そのマシンを Power Automate Premium のユーザーが登録している必要があり、クラウドフローから起動する接続を作る人にも Premium(または同等のデスクトップフローの権利)が要るとされています。無人で動かすなら、Process 1つと、登録と接続を作る担当者の Premium 1つがセットになります。

手間の面でも、パソコンを夜通し電源オンにし、退勤時に全員がサインアウトし、リモート デスクトップを有効にし、接続のユーザーを「リモート デスクトップ ユーザー」グループに入れる、という運用が要ります。パスワードを定期的に変える規則がある会社では、変えるたびに接続を更新しないと止まります。

サンプル工務店では、発注の入力は朝9時台に終われば足りるので、アテンド型で始めました。事務Bが出社してサインインしたあとの9時15分に動かし、その間は別の作業をします。非アテンド型を考えるのは、件数が増えて勤務時間内に収まらない、夜のうちに終わっていないと困る、という理由がはっきりしてからで十分です。

できないことと、その代わり

できないこと代わりの手
無料の範囲で決まった時刻に自動で動かす手動で動かすか、Premium を1人分買う
ロック中・サインアウト中にアテンド型で動かす人が席にいる時間に動かすか、非アテンド型にする
Windows の Home エディションで動かすPro 以上のパソコンにする
1つの接続を複数の担当で共有する担当ごとに接続を作り直す
管理者権限が要る操作を非アテンド型で動かす管理者権限の要らない手順に変えるか、その部分を人がやる
大量の行を毎晩何時間も処理する発注サイトにAPIがあればクラウドフローのHTTPで入れる。なければ専用のRPAや外注を考える

よく詰まるところ

症状原因直し方
アテンド型が AttendedUserSessionNotActive で失敗画面がロックされていた実行時刻を人が席にいる時間にするか、ロックの設定を見直す
アテンド型が AttendedUserNotLoggedIn で失敗接続のユーザーでサインインしていない接続のユーザー アカウントと実際のサインインを合わせる
非アテンド型が SessionExistsForTheUserWhenUnattended で失敗同じユーザーがサインインしたまま(ロック中も含む)退勤時にサインアウトする
非アテンド型が「アクティブなセッション」のエラーで失敗Windows 10・11 で別のユーザーがサインインしていた全員がサインアウトする
NoCandidateMachine で失敗キューの待ち時間の上限を超えたマシンを増やすか、実行の時刻を分散する
NoListenerConnected で失敗マシンがオフライン電源・ネットワーク・マシン ランタイムのサインインを確かめる
「RDP が有効になっていない」で失敗リモート デスクトップがオフWindows の設定でリモート デスクトップを有効にする
RDP のアクセス許可のエラーで失敗接続のユーザーが「リモート デスクトップ ユーザー」グループにいないグループに追加する
UIFlowAlreadyRunning で失敗前の実行がまだ動いていた実行の間隔を空けるか、処理を短くする
時間がかかる実行がタイムアウトで失敗アクションのタイムアウトを超えたアクションの「設定」でタイムアウトを延ばすか、フローを分ける
資格情報のエラーで止まるユーザー アカウントの書き方が違う、パスワードを変えた書式を直し、接続のパスワードを更新する
原因が分からないマシン側の不調マシン ランタイムの「トラブルシューティング」から診断ツールを管理者で動かす
Power Automate の実行履歴で、デスクトップフローの失敗とエラー コードが表示されたところ
Power Automate の実行履歴で、デスクトップフローの失敗とエラー コードが表示されたところ

次にやること

デスクトップフローとクラウドフローの違いをもう一度整理したいときは「Power Automate Desktopとは:無料で使えるRPAとクラウドフローの違い」に戻ってください。繰り返しトリガーの細かい設定(毎週・月末・タイムゾーン)は「Power Automateのスケジュール実行:毎朝・毎週・月末に動くフローを作る」で書いています。Premium と Process をどこまで買うかは「Power Automateの料金とライセンス:Microsoft 365に含まれる範囲とPremiumが要る場面」で、入力変数・出力変数やエラー処理の作り方は「Power Automate Desktopの変数・条件・ループとエラー処理」で確かめられます。

あわせて読む