Windowsタスクスケジューラーの設定を全項目解説|バッチ自動実行からスリープ対策まで

Windowsのアイキャッチ

最近Windowsでバッチを定期的に実行する設定をすることがありました。Linuxならcronを使えばよいですが、Windowsでは「タスクスケジューラー」を使うことになります。いざ設定しようとすると項目がまぁまぁ多いし、なんかよくわからないものもあったり……。

この記事では、タスクスケジューラーの「タスクの作成」画面で設定できる項目をすべて調べてみました。3歩歩けば忘れる自分のためのメモでもあるので、専門用語もできるだけ噛み砕いて説明していきますね。

目次

この記事でわかること

  • タスクスケジューラーの起動方法と「タスクの作成」画面の全体像
  • 全般・トリガー・操作・条件・設定の5タブにある設定項目の意味
  • 「ログオン時」と「スタートアップ時」など混同しやすいトリガーの違い
  • バッチファイル(.bat)を確実に実行するための操作タブの設定方法
  • スリープ中でもタスクを実行させるための条件タブの設定
  • 二重起動を防ぐための設定タブの使い方

タスクスケジューラーの起動方法

まずタスクスケジューラーを開きます。

  1. 「Windowsキー + Rキー」を押して「ファイル名を指定して実行」を開く。
  2. taskschd.mscと入力してEnterキーを押す。

これでタスクスケジューラーのメイン画面が表示されます。

タスクスケジューラー画面

左側のフォルダツリーには既存のタスクが階層的に整理されています。右側の「操作」パネルに「基本タスクの作成」と「タスクの作成」の2つがありますが、詳細な設定ができるタスクの作成を使っていきます。

タスクの作成:5つのタブを理解しよう

「タスクの作成」をクリックすると5つのタブを持つウィンドウが開きます。

タブ名役割
全般タスクの名前や実行権限を設定
トリガーいつ・どんな条件で実行するかを設定
操作何を実行するか(プログラムやスクリプト)を設定
条件追加の実行条件(電源状態など)を設定
設定タイムアウトや多重起動の制御など細かい挙動を設定

全般タブ:タスクの基本情報と実行権限

全般タブではタスクの「名前」や「誰の権限で実行するか」といった基本的な情報を設定します。

タスクの作成(全般タブ)

基本設定

  • 名前
    タスクの名前を入力します。ファイル名のようなもので動作には影響しません。後から見たときに何をするタスクか一目でわかる名前をつけておくと便利です。
  • 場所
    タスクが保存されるフォルダの階層です。通常は「\(ルートフォルダ)」ですがタスクが増えてきたらサブフォルダで整理することもできます。
  • 作成者
    このタスクを作成しているユーザー名(ログイン中のユーザー)が自動で表示されます。変更はできません。
  • 説明
    タスクに関するメモ書きです。動作には影響しないので自由に記載できます。数ヶ月後の自分が「これ何だっけ?」とならないように目的をメモしておくといいですよ。

セキュリティオプション

タスクが正しく動くかどうかに直結する重要な設定項目です。

  • タスクの実行時に使うユーザーアカウント
    このタスクを「誰として」実行するかを指定します。デフォルトでは現在ログインしているユーザーです。Administrator権限で実行したい場合は「ユーザーまたはグループの変更」ボタンで変更します。
  • ユーザーがログオンしているときのみ実行する
    PCにサインインしてデスクトップが表示されているときだけタスクが動きます。メッセージボックスの表示やExcelマクロの実行など画面上の動作が必要な場合に選択します。
  • ユーザーがログオンしているかどうかに関わらず実行する
    サインアウト中でもPCの電源が入っていればバックグラウンドで実行されます。夜間バックアップやシステムメンテナンスなど画面表示が不要な処理向けです。タスク保存時にパスワードを求められることがあります。
  • パスワードを保存しない
    パスワード入力なしで実行できますがネットワーク上のファイルにはアクセスできなくなります。
  • 最上位の特権で実行する
    いわゆる「管理者として実行」と同じ状態でタスクが動きます。通常のユーザー権限ではエラーになる処理もここをオンにすると解決することが多いです。以下のようなケースで必要になります。
    • システム設定の変更
    • Program Files内のファイル操作
    • レジストリの編集

その他

  • 表示しない
    チェックを入れるとタスクスケジューラの標準画面からこのタスクが見えなくなります。通常はチェック不要です。
  • 構成
    タスクの互換性レベルを指定します。Windows 10 / 11を使っていても基本的にはデフォルトのままで問題ありません。新しいトリガー条件などを使いたい場合のみ「Windows 10」などに変更します。

トリガータブ:いつ・どんな条件で実行するか

トリガータブではいつ、どのような条件でタスクを動かすかを決定します。複数のトリガーを設定することも可能です。「新規」ボタンをクリックするとトリガー設定ウィンドウが開きます。

タスクの作成(トリガータブ)

タスクの開始

ドロップダウンメニューで以下の9種類から選択できます。

  • スケジュールに従う
  • ログオン時
  • スタートアップ時
  • アイドル時
  • イベント時
  • タスクの作成/変更時
  • ユーザーセッションへの接続時
  • ユーザーセッションからの切断時
  • ワークステーションロック時 / アンロック時

スケジュールに従う

指定した日時や頻度で定期的にタスクを実行する基本的なトリガーです。

新しいトリガー(スケジュールに従う)
  • 開始
    タスクを開始する日付と時刻を設定します。
  • タイムゾーン間で同期
    協定世界時(UTC)を基準にして実行されます。海外でPCのタイムゾーン設定が変わっても同じタイミングで実行させたい場合に使いますが通常はオフのままで大丈夫です。
  • 1回
    開始で指定した日時に一度だけ実行します。
    スケジュールに従う(1回)
  • 毎日
    毎日決まった時間に実行します。
    スケジュールに従う(毎日)
  • 毎週
    特定の曜日(例:毎週月曜と水曜)に実行します。
    スケジュールに従う(毎日)
  • 毎月
    特定の日(例:毎月1日・第2火曜日)に実行します。
    スケジュールに従う(毎月)

ログオン時

ユーザーがPCにサインインした瞬間に実行する設定です。OutlookやTeamsなどを自動起動させたいときに便利です。

  • 任意のユーザー
    誰がこのPCにサインインしても実行されます。
  • 特定のユーザー
    指定した人がサインインした時だけ実行します。

スタートアップ時

Windowsが起動した瞬間に実行されます。ユーザーがログインする前に動き出す設定です。システムの初期化処理やサービスの起動など、ユーザーがログインする前に済ませておきたい処理に使うとよいかもです。ログオン時とは下記の違いがあります。

タイミング
スタートアップ時Windows起動 → タスク実行 → ログイン画面表示
ログオン時Windows起動 → ログイン画面 → サインイン → タスク実行

アイドル時

PCを一定時間操作していない状態(マウスやキーボードに触れていない)になったらタスクを開始する設定です。

注意: 「何分間操作しなかったらアイドルとみなすか」という時間はこの画面ではなく「条件」タブで設定します。

イベント時

Windowsのイベントログに特定の記録が書き込まれた瞬間に実行されます。

  • ログ
    監視対象とするログの種類を選びます(System・Application・Security など)。
  • ソース
    そのイベントを発行した発生元を選びます(Kernel-Power・Windows Update など)。
  • イベントID
    発生した事象を特定する番号です。特定のエラーが発生したら通知するなどの自動化に使えます。

タスクの作成/変更時

このタスク自体が新しく作られたり設定が変更されて保存されたりした瞬間に、自動で1回実行される設定です。このトリガーには条件分岐がないため追加の設定項目はありません。

ユーザー セッションへの接続時

ユーザーがPCにサインインしたりユーザー切り替えで戻ってきた時に実行されます。リモートデスクトップで再接続した時なども含まれます。

  • 任意のユーザー
    誰が操作しても実行します。
  • 特定のユーザー
    指定したユーザーが操作した時だけ実行します。
  • リモートコンピューターからの接続
    リモートデスクトップを使って別のPCから接続した時だけ実行します。
  • ローカルコンピューターからの接続
    実際にそのPCを直接操作している時だけ実行します。

ユーザー セッションからの切断時

ユーザーがPCから切断した時に実行されます。「サインアウト」とは異なり裏でプログラムが動いたまま接続だけ切る場合を指します。

リモートデスクトップのウィンドウを×で閉じた時や、ユーザーの切り替えを行った時などが該当します。リモートデスクトップの切断時に特定のアプリを自動終了させるといった用途に使えます。

ワークステーションロック時 / アンロック時

PCをロックした時(Windows + Lを押した時や放置して自動ロックされた時)、またはロック画面でパスワードやPINを入力してデスクトップに戻った時に実行されます。いずれも「任意のユーザー」と「特定のユーザー」を選択できます。

詳細設定

トリガーにはさらに細かい制御ができる「詳細設定」セクションがあります。

  • 遅延時間を指定する(ランダム)
    指定した時間の範囲内で実行タイミングをランダムに遅らせます。多数のPCが一斉にサーバーへアクセスして負荷がかかるのを防ぐ場合などに使います。
  • 繰り返し間隔
    一度トリガーが発動した後さらに一定間隔で繰り返し実行させたい場合に使います。「毎日9時に開始し1時間ごとに実行を12時間継続する」といった設定が可能です。
  • 停止するまでの時間
    タスクが何らかの理由で終了せず動き続けてしまった場合の安全装置です。「3日間」に設定すると処理が3日経っても終わらない場合に強制終了させます。
  • アクティブ化 / 有効期限
    このトリガーを有効にする日付・無効にする日付を指定できます。「来月末までは毎日実行するがそれ以降はスケジュールを無視する」といった場合に使います。
  • 有効
    このトリガーを有効にするかどうかのスイッチです。チェックを外すと設定を削除せずに一時的にスケジュールを止めておくことができます。

操作タブ:何を実行するか

操作タブでは、トリガーが発動したときに「何をするか」を設定します。

タスクの作成(操作タブ)

プログラムの開始(推奨)

これはタスクスケジューラーで現在唯一正常に動作する標準的な操作です。指定した時間にアプリやスクリプトを自動実行させる場合に使います。

  • プログラム/スクリプト
    実行したいアプリケーション(.exe)やバッチファイル(.bat・.cmd)などのパスを指定します。.batファイルを直接指定することもできますがここにcmd.exeを指定して引数でバッチファイルを渡すほうが確実なようです。
  • 引数の追加(オプション)
    プログラム実行時に渡すパラメータを指定します。batスクリプトを実行する場合の例は以下のとおりです。
    • プログラム:cmd.exe
    • 引数:/c 【batファイルのパス】
  • 開始(オプション)
    作業フォルダー(カレントディレクトリ)を指定します。プログラムが自分の場所にある設定ファイルを読み込む必要がある場合、ここが空欄だとエラーになることがあります。通常は実行ファイルがあるフォルダのパスを指定します。

PowerShellスクリプトを特定フォルダーで実行したい場合、以下の記事も参考にしてみてください。

電子メールの送信(非推奨・使用不可)

タスク実行時に指定した内容でメールを送信する機能ですが現在は使用できません

Windows 8(およびWindows Server 2012)以降この機能は廃止されました。設定画面自体は互換性のために残っていますが設定してもエラーになるか動作しません。現代のセキュリティ基準(SSL/TLS・OAuth認証など)に対応しておらず単純なSMTP認証しかできないためです。

代用案
PowerShellスクリプト(Send-MailMessageコマンドなど)を作成し「プログラム/スクリプト」でそのスクリプトを実行する方法が推奨されます。

PowerShellスクリプトを実行しようとすると、実行ポリシーのエラーでつまずくことがありますよね。以下の記事で設定方法をまとめています。

メッセージの表示(非推奨・使用不可)

タスク実行時に画面上にポップアップメッセージを出す機能ですが、こちらも現在は使用できません

Windows 8以降で廃止されました。Windowsの「セッション0の分離」というセキュリティ設計の変更により、バックグラウンドで動くサービスがユーザーの画面に直接ウィンドウを表示することが制限されたためです。

代用案
PowerShellでメッセージを表示するスクリプトを書くかWindows標準コマンドのmsg.exeを「プログラム/スクリプト」で実行することで代用可能です。

条件タブ:追加の実行条件を設定

条件タブでは、トリガー(時間やイベント)が発生したとしても「PCの状態がどういう時ならタスクを実行するか」という追加の制限を設定します。

タスクの作成(条件タブ)

アイドル

「アイドル状態」とはユーザーがマウスやキーボードを一定時間操作しておらずかつCPU使用率が低い状態(PCを使っていない状態)を指します。

  • 次の間アイドル状態の場合のみタスクを開始する
    チェックを入れるとトリガーの時間になってもPCを操作している最中ならタスクを実行しません。「10分間」を設定すると10分間放置された状態になって初めて実行されます。ウイルススキャンやデフラグなどPCが重くなる処理を自分がPCを使っていない間に実行したい場合に使います。
  • アイドル状態になるのを待機する時間
    トリガーの時間にPCを使っていた場合どれくらい待つかを指定します。「1時間」に設定するとトリガー時刻から1時間はチャンスを待ちます。1時間経ってもずっとPCを使い続けていたらその回のタスク実行は諦めて中止されます。
  • コンピューターがアイドル状態ではなくなった場合は停止する
    例えば席を外している間にタスクが始まり、戻ってきてマウスを動かした瞬間にタスクを中断させる設定です。
  • 再びアイドル状態になったら再開する
    上記で中断されたタスクを次のアイドル状態で続きから再開させたい場合にオンにします。

電源(ノートPCで重要な設定)

  • コンピューターをAC電源で使用している場合のみタスクを開始する
    コンセントに繋がっている時だけ実行します。ノートPCで電源を繋いでいない時でも必ず実行させたい場合はこのチェックを外す必要があります。
  • コンピューターの電源をバッテリに切り替える場合は停止する
    タスク実行中にコンセントを抜いたらタスクを強制終了します。
  • タスクを実行するためにスリープを解除する
    PCがスリープに入っている時にタスクを実行するためにPCを叩き起こすかどうかの設定です。夜中や早朝に自動実行させたい場合はPCがスリープしている可能性が高いのでここにチェックを入れることが必須になります。チェックがないとスリープ中のPCではタスクが無視されます。

ネットワーク

  • 次のネットワーク接続が使用可能な場合のみタスクを開始する
    特定のネットワーク(インターネットや社内LANなど)に繋がっていないと実行しない設定です。データをクラウドにアップロードするなどインターネット接続が必須のタスクの場合にチェックを入れます。繋がっていない時に実行してエラーになるのを防げます。

設定タブ:タスクの細かい挙動を制御

このタブではタスクが失敗した時や長時間終わらない時の挙動など、トラブルシューティングに近い安全策を設定します。

タスクの作成(設定タブ)
  • タスクを要求時に実行する
    スケジュール以外のタイミングでも人間が手動で(右クリックして「実行」を選んで)タスクを動かすことができます。テスト実行のために必須です。
  • スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する
    電源が切れている等で予定時刻に実行できなかった場合、次にPCを起動した直後に遅れて実行するかどうかです。
  • タスクが失敗した場合の再起動の間隔
    エラーでタスクがコケた場合に自動でリトライ(再挑戦)させる設定です。
  • タスクを停止するまでの時間
    プログラムがずっと実行中のままの場合に停止させる設定です。「3日間」に設定するとタスク実行から3日経っても実行している場合に強制終了させます。
  • 要求時に実行中のタスクが終了しない場合、タスクを強制的に停止する
    手動でタスクを止めようとした時にプログラムが応答しなくても無理やり終了を許可する設定です。
  • タスクが既に実行中の場合に適用される規則
    前回のタスクがまだ終わっていないのに次の実行時間が来てしまった場合のルールです。開始しないにしておくと二重起動(同じ処理が2つ同時に走ること)を防げます。データの破損などを防ぐため通常はこの設定が安全です。

Q&A

バッチファイルを設定したのにタスクが実行されません。何が原因?

よくある原因は3つあります。

  • 作業フォルダー(開始)が空欄
    操作タブの「開始(オプション)」にバッチファイルのあるフォルダパスを指定してみてください。
  • 管理者権限が不足
    全般タブの「最上位の特権で実行する」にチェックを入れてみてください。
  • プログラム欄への直接指定
    cmd.exeを経由せずに.batを直接指定していると環境によって動作しない場合があります。プログラム欄をcmd.exeにして引数に/c 【batファイルのパス】を渡す形を試してみてください。
スリープ中にタスクが実行されません。

条件タブの「タスクを実行するためにスリープを解除する」にチェックが入っているか確認してみてください。ここにチェックがないとスリープ中はタスクがスキップされます。ノートPCの場合は同じく条件タブの「コンピューターをAC電源で使用している場合のみタスクを開始する」のチェック状態も合わせて確認してみてください。

タスクが二重に実行されてしまいます。

設定タブの「タスクが既に実行中の場合に適用される規則」を「開始しない」に変更してみてください。デフォルト設定では前の実行が終わっていなくても次の起動が始まってしまうことがあります。

まとめ

Windowsタスクスケジューラーの5つのタブについて全設定項目を解説してきました。

  • 全般タブ: 実行権限の設定が超重要。「最上位の特権で実行する」が必要かどうかをまず確認しようだよ。
  • トリガータブ: 「スタートアップ時」と「ログオン時」の違いはしっかり覚えておいてね。
  • 操作タブ: 使えるのは「プログラムの開始」だけ。バッチ実行はcmd.exe /c経由が安定するよ。
  • 条件タブ: ノートPCは電源設定に注意。スリープ中の実行には「スリープを解除する」を忘れずチェックしてね。
  • 設定タブ: 二重起動防止に「開始しない」ルールを設定しておくのが鉄板だよ。

タスクスケジューラーは最初は複雑に見えますが、一度理解してしまえば「毎日のバックアップ」「起動時のアプリ自動起動」「スリープ復帰後のメンテナンス」など、さまざまな自動化が実現できる頼もしいツールです。ぜひ使いこなしてみてね。ンテナンス」など、さまざまな自動化が実現できる頼もしいツールです。ぜひ使いこなしてみてね。

なお、タスクスケジューラーと組み合わせて使うと便利なのがwingetコマンドです。アプリの一括更新を定期自動実行する、といった使い方もできますよ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次