毎朝のファイルコピー、週次の集計、月末のバックアップ。
決まった時刻に決まった処理を手で動かしているなら、その「起動ボタンを押す」部分はWindowsに任せられます。
使うのはタスクスケジューラという、Windowsに最初から入っている機能です。
追加のソフトも費用も要りません。
ただし、タスクスケジューラは「時計」の係です。
決めた時刻(や「ログオンしたとき」などの合図)で、指定したファイルの起動ボタンを押すだけです。
動かす中身(コピーや集計といった処理を書いたファイル)は、別に用意しておく必要があります。
先に確認:動かすファイルは、もう手元にあるか
- ある(毎朝の作業を書いた bat や PowerShell の「.ps1」ファイルが手元にある)→ そのまま読み進めてください
- まだ無い(「共有フォルダを開いて、コピーして、貼る」のような手の操作でやっている)→ 先にその操作をファイルの形にします。
作り方は「面倒なパソコン作業はAIに書かせて自動化する」で扱っています
結論:登録そのものは短時間で終わる。難しいのは「何を載せるか」
最初の1つを登録する手順(概要)
- スタートボタンを押して「タスク」と入力し、「タスクスケジューラ」を開く
- 画面右側の「基本タスクの作成」をクリックし、名前 → 実行のタイミング → 実行するプログラム の順に答える
- プログラムの場所はフルパス(「C:\jobs\backup.bat」のように、ドライブ名から全部書く形)で指定する。
動かすのがbat(バッチファイル=自動処理をまとめて書いたテキストファイル)なら、「開始(オプション)」欄にbatのあるフォルダを入れる(「”」で囲まない) - 登録したタスクを右クリック →「実行」で、その場で動くことを確かめる
つまずきが集まるのはその前後です。
前は、載せる作業の選定(→ 後半の判断基準)。
後は「時刻になっても動かない」で、原因の多くは既定の設定がノート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回限り」のほか、「コンピューターの起動時」「ログオン時」も選べます。ここでは「毎日」
- 開始日と時刻を入れる(例:7:00:00)
- 操作は「プログラムの開始」を選ぶ
- 「プログラム/スクリプト」欄に、動かしたいファイルをフルパスで入れる(例:C:\jobs\backup.bat)。
ただし、PowerShellのファイル(.ps1)だけは、この欄に直接入れないでください。入れても実行されず、メモ帳が開いて終わります。
.ps1 のときは、この欄に「powershell.exe」とだけ入れます。
そのうえで、同じ画面の「引数の追加(オプション)」欄に「-ExecutionPolicy Bypass -File “C:\jobs\backup.ps1″」の形で入れます。
(パスは自分の .ps1 の場所に置き換えます)
「-ExecutionPolicy Bypass」は、いま動かすこの1回だけ .ps1 の実行を有効にする指定です(パソコンの設定は変わりません。タスクが終われば消えます)。
Windowsの初期設定では .ps1 の実行が止められているので、これが無いと動かないことがほとんどです。
なお、会社のパソコンで管理者がスクリプトの実行を止めている場合は、この指定を付けても動きません(管理者の設定のほうが優先されます)。別の書き方を探さずに、情報システム部門に確認してください - 「開始(オプション)」欄に、そのファイル(.ps1 のときは .ps1 のほう)のあるフォルダを入れる(例:C:\jobs)。
このとき「”」(ダブルクォーテーション)で囲まないでください(囲むとエラーになります) - 内容を確認して「完了」
登録したら、その場でテストする(画面を閉じて時刻を待たない)
- 画面左の「タスク スケジューラ ライブラリ」をクリックし、中央の一覧から登録したタスクを右クリック →「実行」
- 処理が実際に動くことを確かめる(batなら、できるはずのファイルができているか)
- 一覧の「前回の実行結果」が (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つ全部に当てはまったら登録する)
- 手動で最後まで通して動かし、毎回同じ手順で終わることを確かめた
- 失敗しても元データが残る形になっている(または、失敗に気づくための確認方法を決めた)
- 実行時刻にPCが起きている運用になっている
登録したのに動かないときは
最初のテスト(右クリック →「実行」)では動いたのに、時刻が来ると動かない。
多くは既定値(AC電源・スリープ)の見直しで直ります。
それでも直らないときの切り分けは、別記事「タスクスケジューラでバッチファイルが動かない原因は3つ」で扱っています。
動かないからといって「最上位の特権で実行する」(管理者の権限で動かすチェック)を最初に付けるのはやめてください。
原因が権限でなければ付けても直らず、ネットワークドライブ(共有フォルダに割り当てた Z: などのドライブ文字)が見えなくなる副作用もあります。
付けるのは「手動で動かすときにも『管理者として実行』が必要な処理」だけ、が基準です。
この記事の確認範囲
- Windows 11 の画面の名前で書いています。Windows 10 でも同じ流れで登録できますが、画面の名前が違うことがあります
- Windowsのエディション(HomeとPro)や設定によって、画面の名前や選べる項目が変わることがあります
- 会社のパソコンなど、管理者がまとめて設定を配っている環境では、ここに書いた既定値と違うことがあります。
プロパティを開いて、自分の画面のチェックの状態を見てください - ノートパソコンがスリープ中にどう振る舞うかは、機種の省電力の作りによって変わることがあります。
フタを閉じた状態で実行されるかどうかは、登録してから数日ぶんの「前回の実行結果」の日時で見分けてください


コメント