Windowsタスクスケジューラでスクリプトを定期実行する方法|Python・バッチ・PowerShell対応

※本記事はアフィリエイト広告(Amazonアソシエイト・もしもアフィリエイト)を含みます。価格やサービス内容は変わることがあるため、最新の情報は公式サイト・商品ページでご確認ください。

Windowsで「毎朝3時にバックアップ」「15分ごとにデータを取得」のような定期実行をするなら、標準で入っているタスクスケジューラを使います。この記事では、Pythonやバッチファイル、PowerShellのスクリプトを定期実行する手順と、24時間動かすPCで動かない・止まる原因になりやすい設定をまとめます。

タスクスケジューラの開き方

  • スタートメニューで「タスク スケジューラ」と検索して開く
  • または Windowsキー+R で taskschd.msc を実行する

基本の作り方(基本タスクの作成)

  1. 右側の「基本タスクの作成」を押し、名前を付ける(例:毎朝バックアップ)
  2. 「トリガー」で実行するタイミングを選ぶ(毎日/毎週/コンピューターの起動時/ログオン時 など)
  3. 「操作」で「プログラムの開始」を選ぶ
  4. 「プログラム/スクリプト」「引数の追加」「開始(オプション)」を入力する(下の表を参照)
  5. 「完了」を押す

スクリプトの種類ごとの入れ方

種類プログラム/スクリプト引数の追加開始(オプション)
Pythonpython.exe のフルパス
(例:C:\Users\ユーザー名\AppData\Local\Programs\Python\Python312\python.exe)
スクリプトのパス(例:C:\scripts\job.py)スクリプトのあるフォルダ(例:C:\scripts)
バッチファイルバッチファイルのパス(例:C:\scripts\backup.bat)(なし)バッチファイルのあるフォルダ
PowerShellpowershell.exe-ExecutionPolicy Bypass -File “C:\scripts\job.ps1”スクリプトのあるフォルダ

「開始(オプション)」は空欄にしないのがおすすめです。ここが空だと、スクリプトの中で「同じフォルダのファイル」を読もうとしたときに見つからず、手で実行すると動くのにタスクだと失敗する、という原因になります。

python.exe のフルパスは、コマンドプロンプトで where python を実行すると確認できます。

15分ごとなど「繰り返し」実行したいとき

基本タスクで作ったあと、タスクをダブルクリック →「トリガー」タブ →「編集」を開き、「繰り返し間隔」にチェックを入れて間隔(5分・10分・15分・30分・1時間など)を選びます。その下の「継続時間」を「無期限」にすると、ずっと繰り返します。

24時間稼働PCで見直したい設定

タスクをダブルクリックして開くプロパティで、次の項目を確認しておくとトラブルが減ります。

タブ項目おすすめ
全般ユーザーがログオンしているかどうかにかかわらず実行するサインインしていなくても動かしたい処理はオン(パスワードの入力が必要。画面にウィンドウは表示されません)
全般最上位の特権で実行する管理者権限が必要な処理だけオン
条件コンピューターをAC電源で使用している場合のみタスクを開始するノートPCやUPS使用時に止まらないよう、必要に応じてオフ
条件タスクを実行するためにスリープを解除するスリープさせているPCならオン
設定スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行するオン(停電や再起動で実行時刻を逃したときに取り戻せる)
設定タスクを停止するまでの時間常駐させる処理なら、チェックを外す(初期値は3日で止まる)

ちゃんと動いたか確認する

  • タスクの一覧の「前回の実行結果」が この操作を正しく終了しました。(0x0) なら成功です。0x1 などはスクリプト側でエラーが出ています。
  • 右側の「すべてのタスク履歴を有効にする」を押しておくと、「履歴」タブで実行の記録を見られます。
  • スクリプトの中でログファイルに書き出しておくと、失敗したときの原因を追いやすくなります。

コマンドで作ることもできる

同じ設定を何台ものPCに入れたいときは、コマンドプロンプトの schtasks で作ることもできます。たとえば毎日3:00にバッチファイルを実行するなら、次のようになります。

schtasks /create /tn "毎朝バックアップ" /tr "C:\scripts\backup.bat" /sc daily /st 03:00

よくあるつまずき

  • 手で実行すると動くのにタスクだと失敗する:「開始(オプション)」が空、相対パスを使っている、ネットワークドライブ(Z: など)を使っている、のどれかが多い原因です。
  • ウィンドウが出ない:「ログオンしているかどうかにかかわらず実行する」にすると、画面には表示されずに裏で動きます。画面に出したいソフトは「ログオンしているときのみ実行する」にします。
  • Windows Updateの再起動で止まる:Windows Updateの勝手な再起動を防ぐ設定と、トリガーを「コンピューターの起動時」にしたタスクを組み合わせると、再起動後に自動で復帰できます。

Linuxならcron

ミニPCにLinuxを入れて使う場合は、タスクスケジューラの代わりにcronを使います。書き方の確認はcron 次回実行時刻チェッカーでできます。

もっと手軽に自動化したいなら

スクリプトを書かずに、マウス操作で自動化の流れを作れる「Power Automate for desktop」もあります。詳しくは個人でも使えるRPA・自動化ツール入門で紹介しています。Amazonで「できるPower Automate for desktop」を見る / 楽天で見る / Yahoo!で見る

📘 ミニPCの24時間自動化を、1冊にまとめました

Kindle本『ミニPCで始める24時間自動化入門』(著:自動化ラボ)。ミニPCの選び方から、電気代・停電対策・定期実行・リモート管理まで、このブログの内容を順番に読めるように整理しました。Kindle Unlimited の対象です。

Amazonで本を見る(Kindle)

※PR:自分(自動化ラボ)の本の紹介です。リンクはAmazonアソシエイトを使っています。

関連記事

定型作業の自動化を任せたい方へ
ココナラで作業をお受けしています(筆者のサービスです)。→ Excel・CSV作業をPython+AIで自動化します(ココナラ)

コメント

タイトルとURLをコピーしました