Windowsで決まった時刻に処理を自動で動かす方法|タスクスケジューラの基本と、自動化に向く作業の見分け方

Windowsで決まった時刻に処理を自動で動かす方法|タスクスケジューラの基本と、自動化に向く作業の見分け方
当サイトはアフィリエイト広告を利用しています。

毎朝のファイルコピー、週次の集計、月末のバックアップ。
決まった時刻に決まった処理を手で動かしているなら、その「起動ボタンを押す」部分はWindowsに任せられます。
使うのはタスクスケジューラという、Windowsに最初から入っている機能です。
追加のソフトも費用も要りません。

ただし、タスクスケジューラは「時計」の係です。
決めた時刻(や「ログオンしたとき」などの合図)で、指定したファイルの起動ボタンを押すだけです。
動かす中身(コピーや集計といった処理を書いたファイル)は、別に用意しておく必要があります。

先に確認:動かすファイルは、もう手元にあるか

  • ある(毎朝の作業を書いた bat や PowerShell の「.ps1」ファイルが手元にある)→ そのまま読み進めてください
  • まだ無い(「共有フォルダを開いて、コピーして、貼る」のような手の操作でやっている)→ 先にその操作をファイルの形にします。
    作り方は「面倒なパソコン作業はAIに書かせて自動化する」で扱っています

結論:登録そのものは短時間で終わる。難しいのは「何を載せるか」

最初の1つを登録する手順(概要)

  1. スタートボタンを押して「タスク」と入力し、「タスクスケジューラ」を開く
  2. 画面右側の「基本タスクの作成」をクリックし、名前 → 実行のタイミング → 実行するプログラム の順に答える
  3. プログラムの場所はフルパス(「C:\jobs\backup.bat」のように、ドライブ名から全部書く形)で指定する。
    動かすのがbat(バッチファイル=自動処理をまとめて書いたテキストファイル)なら、「開始(オプション)」欄にbatのあるフォルダを入れる(「”」で囲まない)
  4. 登録したタスクを右クリック →「実行」で、その場で動くことを確かめる

つまずきが集まるのはその前後です。
前は、載せる作業の選定(→ 後半の判断基準)。
後は「時刻になっても動かない」で、原因の多くは既定の設定がノートPCの使い方と噛み合っていないことです(→ 設定項目の節)。

タスクスケジューラは何をするものか

タスクスケジューラは、「いつ」(トリガー)と「何を」(操作)の組を登録しておくと、条件が満たされたときにWindowsが裏でプログラムを起動してくれる機能です。
Windows 11・Windows 10のどちらにも、HomeやProの違いに関係なく入っています。

たとえば、こういう組です。

いつ何を
毎朝7時に共有フォルダから当日分のファイルをコピーするbatを実行
毎週金曜の17時に週次集計のスクリプト(自動処理を書いたファイル)を実行
PCにログオンしたときに作業用のフォルダとアプリを開くbatを実行

タスクスケジューラは、その時刻にPCが動いていなければ何もしません。
電源が切れていれば当然動きませんし、スリープ(画面が消えて処理が止まっている省電力状態)中も、既定では動きません。

深夜にしか動かせない処理なら、そのPCを夜つけたままにできるかを先に決める必要があります。
できないなら、時刻ではなく「ログオン時」(朝、PCを使い始めた直後に動く)をきっかけにするのが現実的です。

どこから開くか

開き方は2通り覚えれば足ります。どちらで開いても同じ画面です。

方法手順向いている場面
検索スタートボタンを押して「タスク」と入力 → 表示された「タスクスケジューラ」をクリック迷ったらこれ
ファイル名を指定して実行Windowsキー + R →「taskschd.msc」と入力してEnter名前を覚えれば最速

なお、会社のPCでは、タスクスケジューラ自体が管理者によって制限されていることがあります。
開けない・登録できない場合は、制限を回避する方法を探すのではなく、情報システム部門に確認してください。

最初の1つを登録する(基本タスクの作成)

例として「C:\jobs\backup.bat を毎日7時に実行する」を登録します(別のプログラムでも手順は同じ)。

  1. 画面右側の操作メニューから「基本タスクの作成」をクリックする
  2. 名前を付ける(例:毎朝バックアップ)
  3. トリガー(開始のタイミング)を選ぶ。「毎日/毎週/毎月/1回限り」のほか、「コンピューターの起動時」「ログオン時」も選べます。ここでは「毎日」
  4. 開始日と時刻を入れる(例:7:00:00)
  5. 操作は「プログラムの開始」を選ぶ
  6. 「プログラム/スクリプト」欄に、動かしたいファイルをフルパスで入れる(例:C:\jobs\backup.bat)。
    ただし、PowerShellのファイル(.ps1)だけは、この欄に直接入れないでください。入れても実行されず、メモ帳が開いて終わります。
    .ps1 のときは、この欄に「powershell.exe」とだけ入れます。
    そのうえで、同じ画面の「引数の追加(オプション)」欄に「-ExecutionPolicy Bypass -File “C:\jobs\backup.ps1″」の形で入れます。
    (パスは自分の .ps1 の場所に置き換えます)
    「-ExecutionPolicy Bypass」は、いま動かすこの1回だけ .ps1 の実行を有効にする指定です(パソコンの設定は変わりません。タスクが終われば消えます)。
    Windowsの初期設定では .ps1 の実行が止められているので、これが無いと動かないことがほとんどです。
    なお、会社のパソコンで管理者がスクリプトの実行を止めている場合は、この指定を付けても動きません(管理者の設定のほうが優先されます)。別の書き方を探さずに、情報システム部門に確認してください
  7. 「開始(オプション)」欄に、そのファイル(.ps1 のときは .ps1 のほう)のあるフォルダを入れる(例:C:\jobs)。
    このとき「”」(ダブルクォーテーション)で囲まないでください(囲むとエラーになります)
  8. 内容を確認して「完了」

登録したら、その場でテストする(画面を閉じて時刻を待たない)

  1. 画面左の「タスク スケジューラ ライブラリ」をクリックし、中央の一覧から登録したタスクを右クリック →「実行」
  2. 処理が実際に動くことを確かめる(batなら、できるはずのファイルができているか)
  3. 一覧の「前回の実行結果」が (0x0)(正常終了)になっていれば成功。この欄は表示が古いまま残ることがあるので、F5キーで更新してから見る

「開始(オプション)」を空にしない理由

手順7の欄は省略できますが、batを動かすなら実質必須です。

タスクスケジューラは、何も指定しないと C:\Windows\System32 を「現在地」としてプログラムを動かします。
batの中に「data.txt」のような名前だけの指定(相対パス)があると、batのあるフォルダではなくSystem32から探されます。
ダブルクリックでは動くのにタスクスケジューラからだと失敗する原因の代表がこれです。

避け方はいくつかありますが、代表的なのは次の2つ。どちらでも構いません。

  • batの中のファイル指定を、すべてフルパスで書く(これから新しく書くbatなら、こちらが確実です)
  • 「開始(オプション)」欄に、batのあるフォルダを指定する(「”」で囲まない)

batを共有フォルダ(\\サーバー名\…)に置いている場合に「開始(オプション)」が効かなくなる話は、別記事「タスクスケジューラでバッチファイルが動かない原因は3つ」にあります。

「基本タスクの作成」と「タスクの作成」はどちらを使うか

基本タスクの作成タスクの作成
画面の形式ウィザード(質問に順に答える)タブ形式(全項目を自分で開いて設定する)
設定できる範囲最低限(タイミング1つ+プログラム1つ)すべて
向いている場面初めての登録。時刻に1つ動かすだけの用途細かい繰り返しや複数の条件が要る用途

初めてなら「基本タスクの作成」で構いません。
作った後に右クリック →「プロパティ」を開けば、「タスクの作成」と同じ設定を後から足せます。

設定項目は何を決めているのか

タスクを右クリックして「プロパティ」を開くと、タブが並びます。中心は次の4つ。

タブ決めること例
トリガーいつ始めるか毎日7時に。ログオンしたときに
操作何を動かすかC:\jobs\backup.bat を実行する
条件時刻が来たうえで、PCがどういう状態なら実行するかバッテリー駆動なら実行しない、など
設定実行の前後の振る舞い時刻を逃したら後で実行するか。失敗したらやり直すか

つまずきが集まるのは「条件」と「設定」です。
この2つは、基本タスクの作成ウィザードでは一度も画面に出ないまま既定値が入るからです。

注意:ノートPCの「時刻になっても動かない」を先回りする

  • 条件タブの「コンピューターをAC電源で使用している場合のみタスクを開始する」は、既定でオンです。
    ノートPCを電源につながずバッテリーで使っていると、時刻が来てもタスクは実行されません。
    電源の状態に関係なく動かすなら、このチェックを外します
  • 条件タブの「タスクを実行するためにスリープを解除する」は、既定でオフです。実行時刻にPCがスリープしていると、タスクは動きません
  • 設定タブの「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する」は、既定でオフです。
    オフのままだと、逃した実行は補われずスキップされます。
    オンにすると、PCが動ける状態に戻ってから実行されます(「すぐに」とありますが、実際は既定で10分待ちます)。
    トリガーが「1回限り」のタスクでは、オンにしても補完されません(1回限りで補完が要る場合は、トリガーの編集画面で有効期限を設定します)

既定のままだと、フタを閉じてスリープしたノートPCでは「深夜にバックアップ」が毎晩スキップされ続けることになります。
スキップされても画面に知らせは出ません。
登録から数日は、「前回の実行結果」の日時と成果物を目で確かめてください(日時が古いままなら実行されていません)。

どの作業を自動実行に載せるか(判断基準)

タスクスケジューラが代わってくれるのは起動ボタンを押すところまでで、押した後にうまくいくかは作業側の性質で決まります。
載せる作業を選ぶ基準が要ります。

軸1:手順が毎回同じか

  • 毎回、同じ場所の同じ形のデータに、同じ処理をするなら……載せられます。ファイルのコピー・変換・集計・整形などです
  • 途中に「見て決める」が入るなら……その判断は載せられません。
    ただし判断の手前まで(たとえば集計表を作るところまで)を毎朝自動で済ませ、その表を見てどうするかは人が決める、という分け方はできます

実行のきっかけを時刻や条件で書けない作業(「先方から連絡が来たら」など)は載せられません。

軸2:失敗の影響が小さいか。失敗に気づけるか

自動実行は、画面の前に人がいないときに動きます。失敗しても誰も見ていません。

  • 読み取って作る系(コピーする・集計する・変換して別ファイルを作る)なら……失敗しても元のデータは無事です。載せやすい部類です
  • 消す・上書きする・外に送る系(古いファイルの一括削除、メールの自動送信など)なら……誤作動の取り返しがつきません。
    載せる前に手動で繰り返し実行して、安定することを確かめてください。
    削除なら、「完全に消す」のではなく「別フォルダへ退避する」のように、後から戻せる形へ処理のほうを作り替えておきます

「作る系」でも、動いていないことに数か月気づかないのが実害になります。
月に1回、「前回の実行結果」の日時と成果物を見る予定をカレンダーに入れておきます。

軸3:頻度が見合うか

登録の操作より、bat側の直しと動作確認に時間がかかるのが普通です。元が取れるかで判断します。

実行の頻度判断
毎日〜週1回載せる価値があります。1回5分の手作業でも、平日毎日なら月に約100分。手作業の積み上がりが、設定と動作確認の手間をすぐに上回ります
月1回境目です。作業時間の節約だけでは元が取れにくいので、「忘れると困るか」で決めます。月末のバックアップのように、忘れたときの損害が大きい作業は、時間の損得と関係なく載せる価値があります
年に数回向きません。実行のたびに「あのタスク、まだ正しく動くのか」の確認が必要になり、自動にした意味がなくなります。手動で十分です

載せる前のチェック(3つ全部に当てはまったら登録する)

  1. 手動で最後まで通して動かし、毎回同じ手順で終わることを確かめた
  2. 失敗しても元データが残る形になっている(または、失敗に気づくための確認方法を決めた)
  3. 実行時刻にPCが起きている運用になっている

登録したのに動かないときは

最初のテスト(右クリック →「実行」)では動いたのに、時刻が来ると動かない。
多くは既定値(AC電源・スリープ)の見直しで直ります。
それでも直らないときの切り分けは、別記事「タスクスケジューラでバッチファイルが動かない原因は3つ」で扱っています。

動かないからといって「最上位の特権で実行する」(管理者の権限で動かすチェック)を最初に付けるのはやめてください。
原因が権限でなければ付けても直らず、ネットワークドライブ(共有フォルダに割り当てた Z: などのドライブ文字)が見えなくなる副作用もあります。
付けるのは「手動で動かすときにも『管理者として実行』が必要な処理」だけ、が基準です。

この記事の確認範囲

  • Windows 11 の画面の名前で書いています。Windows 10 でも同じ流れで登録できますが、画面の名前が違うことがあります
  • Windowsのエディション(HomeとPro)や設定によって、画面の名前や選べる項目が変わることがあります
  • 会社のパソコンなど、管理者がまとめて設定を配っている環境では、ここに書いた既定値と違うことがあります。
    プロパティを開いて、自分の画面のチェックの状態を見てください
  • ノートパソコンがスリープ中にどう振る舞うかは、機種の省電力の作りによって変わることがあります。
    フタを閉じた状態で実行されるかどうかは、登録してから数日ぶんの「前回の実行結果」の日時で見分けてください

コメント

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