最近Windowsでバッチを定期的に実行する設定をすることがありました。Linuxではcronを使えばよいですが、Windowsでは「タスクスケジューラー」ですることになります。しかし、いざ設定しようとすると項目がまぁまぁ多いし、なんかよくわからないものもあったり・・・
この記事では、タスクスケジューラーの「タスクの作成」画面で設定可能な項目をすべて調べてみました。3歩歩けば忘れる自分のためのメモでもあるので、専門用語もできるだけ噛み砕いて説明していきますね。
タスクスケジューラーの起動方法
まずタスクスケジューラーを開きます。
- 「Windowsキー + Rキー」を押して「ファイル名を指定して実行」を開く。
- taskschd.mscと入力してEnterキーを押す。
これでタスクスケジューラーのメイン画面が表示されます。

左側のフォルダツリーには既存のタスクが階層的に整理されています。右側の「操作」パネルで「基本タスクの作成」と「タスクの作成」の2つがありますが、詳細な設定ができる「タスクの作成」を使っていきます。
タスクの作成:5つのタブを理解しよう
「タスクの作成」をクリックすると、5つのタブを持つウィンドウが開きます。
- 全般タブ: タスクの名前や実行権限を設定
- トリガータブ: いつ・どんな条件で実行するかを設定
- 操作タブ: 何を実行するか(プログラムやスクリプト)を設定
- 条件タブ: 追加の実行条件(電源状態など)を設定
- 設定タブ: タイムアウトや多重起動の制御など細かい挙動を設定
それぞれ順番に見ていきましょう。
全般タブ:タスクの基本情報と実行権限

全般タブではタスクの「名前」や「誰の権限で実行するか」といった基本的な情報を設定します。
基本設定
- 名前
タスクの名前を入力します。ファイル名のようなもので動作には影響しません。後から見たときに何をするタスクか一目でわかる名前をつけておくと便利です。 - 場所
タスクが保存されるフォルダの階層です。通常は「\(ルートフォルダ)」ですが、タスクが増えてきたらサブフォルダで整理することもできます。 - 作成者
このタスクを作成しているユーザー名(ログイン中のユーザー)が自動で表示されます。変更はできません。 - 説明
タスクに関するメモ書きです。動作には影響しないので自由に記載できます。数ヶ月後の自分が「これ何だっけ?」とならないように目的をメモしておくといいですよ。
セキュリティオプション
重要な設定項目です。タスクが正しく動くかどうかに直結します。
- タスクの実行時に使うユーザーアカウント
このタスクを「誰として」実行するかを指定します。デフォルトでは現在ログインしているユーザーです。Administrator権限で実行したい等、ユーザーを変更する場合は「ユーザーまたはグループの変更」ボタンで変更します。 - ユーザーがログオンしているときのみ実行する
意味: PCにサインインしてデスクトップが表示されているときだけタスクが動きます。
用途: メッセージボックスの表示やExcelマクロの実行など画面上で目に見える動作が必要な場合に選択。 - ユーザーがログオンしているかどうかに関わらず実行する
意味: サインアウト中でもPCの電源が入っていればバックグラウンドで実行されます。
用途: 夜間バックアップやシステムメンテナンスなど画面表示が不要な処理向け。
注意: タスク保存時にパスワードを求められることがあります。 - パスワードを保存しない
パスワード入力なしで実行できますがネットワーク上のファイル(PC外部のリソース)にはアクセスできなくなります。 - 最上位の特権で実行する
いわゆる管理者として実行と同じ状態でタスクが動きます。通常のユーザー権限ではエラーになる処理もここをオンにすると解決することが多いです。
こんな時に必要:- システム設定の変更
- Program Files内のファイル操作
- レジストリの編集
その他
- 表示しない
チェックを入れるとタスクスケジューラの標準画面からこのタスクが見えなくなります(「表示」メニューで隠しタスクを表示する設定にしない限り)。通常はチェック不要です。 - 構成
タスクの互換性レベルを指定します。画像では「Windows Vista, Windows Server 2008」となっていますがWindows 10 / 11を使っていても基本的にはこのままで問題ありません。特定の新しい機能(新しいトリガー条件など)を使いたい場合のみここを「Windows 10」などに変更します。
トリガータブ:いつ・どんな条件で実行するか

トリガータブではいつ、どのような条件でタスクを動かすかを決定します。複数のトリガーを設定することも可能です。
「新規」ボタンをクリックすると以下のようなトリガー設定ウィンドウが開きます。
タスクの開始
ドロップダウンメニューで以下の9種類から選択できます。
- スケジュールに従う
- ログオン時
- スタートアップ時
- アイドル時
- イベント時
- タスクの作成/変更時
- ユーザーセッションへの接続時
- ユーザーセッションからの切断時
- ワークステーションロック時 / アンロック時
1. スケジュールに従う

指定した日時や頻度で定期的にタスクを実行します。最も基本的なトリガーです。
- 開始: タスクを開始する日付と時刻を設定します
- タイムゾーン間で同期: 協定世界時(UTC)を基準にして実行されます。海外出張などでPCのタイムゾーン設定が変わっても、相対的に同じタイミングで実行させたい場合に使いますが通常はオフのままで大丈夫です。
- 1回: 開始で指定した日時に一度だけ実行します。

- 毎日: 毎日決まった時間に実行。

- 毎週: 特定の曜日(例:毎週月曜と水曜)に実行

- 毎月: 特定の日(例:毎月1日、第2火曜日)に実行

2. ログオン時
ユーザーがPCにサインイン(ログイン)した瞬間に実行する設定です。OutlookやTeamsなどを自動起動させたいときに便利です。
- 任意のユーザー: 誰がこのPCにサインインしても実行されます。
- 特定のユーザー: 指定した人がサインインした時だけ実行します。
3. スタートアップ時
Windowsが起動した瞬間に実行されます。ユーザーがログインする前(Windowsのロゴが出ている裏側など)に動き出す設定です。
ログオン時との違い:
- スタートアップ時: Windows起動 → タスク実行 → ログイン画面表示
- ログオン時: Windows起動 → ログイン画面 → サインイン → タスク実行
システムの初期化処理やサービスの起動など、ユーザーがログインする前に済ませておきたい処理に使います。
4. アイドル時
PCを一定時間操作していない(マウスやキーボードに触れていない)状態になったら、タスクを開始する設定です。
重要な注意:
「何分間操作しなかったらアイドルとみなすか」という具体的な時間のこの画面ではなく「条件」タブという別の場所で設定します。
5. イベント時
Windowsのイベントログに特定の記録が書き込まれた瞬間に実行されます。
基本
ここでは、「どのログのどのイベントに反応するか」という条件を設定します。
- ログ
監視対象とする「ログの種類(ジャンル)」を選びます。
例:- System(Windowsシステムのログ)
- Application(アプリのログ)
- Security(セキュリティ監査ログ)
- ソース
そのイベントを発行した「発生元(プログラムやコンポーネントの名前)」を選びます。
例:- Kernel-Power(電源関連)
- Windows Update
- イベント ID
発生した事象を特定する「番号」です。特定のエラーが発生したら管理者に通知メールを送る、などの高度な自動化に使えます。
例:- PCがスリープから復帰した時のID
- 特定のディスクエラーのID
6. タスクの作成/変更時
このタスク自体が新しく作られたり、設定が変更されて保存されたりした瞬間に、自動で1回実行される設定です。このトリガーには条件分岐がないため追加の設定項目はありません。
7. ユーザー セッションへの接続時
ユーザーがPCにサインインしたりユーザー切り替えで戻ってきた時に実行されます。リモートデスクトップで再接続した時なども含まれます。
- 任意のユーザー: 誰が操作しても実行します。
- 特定のユーザー: 指定したユーザー(自分、または特定の人)が操作した時だけ実行します。
- リモート コンピューターからの接続: 「リモートデスクトップ」を使って別のPCから接続した時だけ実行します。
- ローカル コンピューターからの接続: 実際にそのPCの目の前にいて、キーボードやマウスで操作している時だけ実行します。
8. ユーザー セッションからの切断時
ユーザーがPCから切断した時に実行されます。「サインアウト(ログオフ)」とは異なり、裏でプログラムが動いたまま接続だけ切る場合を指します。
例:
- リモートデスクトップのウィンドウを×で閉じた時
- ユーザーの切り替えを行った時
使用例: リモートデスクトップの切断時に特定のアプリを自動終了させるなど。
9. ワークステーション ロック時
PCをロックした時(Windows + Lを押した時や放置して自動ロックされた時)に実行されます。
- 任意のユーザー: ユーザーに関係なくPCがロックされた時に実行します。
- 特定のユーザー: 指定したユーザー(自分、または特定の人)がPCをロックした時に実行します。
10. ワークステーション アンロック時
ロック画面でパスワードやPINを入力し、デスクトップ画面に戻った時に実行されます。
- 任意のユーザー: ユーザーに関係なくPCがロック解除された時に実行します。
- 特定のユーザー: 指定したユーザー(自分、または特定の人)がPCをロック解除した時に実行します。
詳細設定
トリガーにはさらに細かい制御ができる「詳細設定」セクションがあります。
遅延時間を指定する(ランダム)
指定した時間(例:30秒や1時間)の範囲内で、実行タイミングをわざとランダムに遅らせます。
用途: 多数のPCが一斉にサーバーへアクセスして負荷がかかるのを防ぐ場合などに使います。個人利用ではあまり使いません。
繰り返し間隔
一度トリガーが発動した後、さらに一定間隔で繰り返し実行させたい場合に使います。
例: 「毎日9時に開始」し、そこから「1時間ごとに実行」を「12時間継続する」といった設定が可能です。
停止するまでの時間
タスクが何らかの理由で終了せず、動き続けてしまった場合の安全装置です。
例: 「3日間」に設定すると、処理が3日経っても終わらない場合に強制終了させます。
アクティブ化 / 有効期限
このトリガー(スケジュール)を有効にする日付、無効にする日付を指定できます。
例: 「来月の末までは毎日実行するが、それ以降はこのスケジュールを無視する」という場合に使います。
有効
このトリガーを有効にするかどうかのスイッチです。ここのチェックを外すと、設定を削除せずに一時的にこのスケジュールを止めておくことができます。
操作タブ:何を実行するか

操作タブでは、トリガーが発動したときに**「何をするか」**を設定します。
プログラムの開始(推奨)
これはタスクスケジューラで現在唯一正常に動作する標準的な操作です。指定した時間にアプリやスクリプトを自動実行させる場合に使います。
プログラム/スクリプト
実行したいアプリケーション(.exe)やバッチファイル(.bat, .cmd)、スクリプトなどのファイルの場所(パス)を指定します。
この項目で.batのバッチファイルを直接指定することもできますが、どちらかといえばここにcmd.exeを指定して引数の追加でバッチファイルを渡すほうが確実なようです。
引数の追加(オプション)
プログラム実行時に渡すパラメータを指定します。
例: batスクリプトを実行する場合
- プログラム欄: cmd.exe
- 引数: script.bat
開始(オプション)
「作業フォルダー(カレントディレクトリ)」を指定します。
プログラムが自分の場所にある設定ファイルなどを読み込む必要がある場合、ここが空欄だとエラーになることがあります。通常は実行ファイルがあるフォルダのパスを指定します。
電子メールの送信(非推奨・使用不可)
タスク実行時に指定した内容でメールを送信する機能ですが現在は使用できません。
なぜ使えないのか?
Windows 8(およびWindows Server 2012)以降この機能は廃止されました。設定画面自体は互換性のために残っていますが、設定してもエラーになるか動作しません。
理由:
現代のセキュリティ基準(SSL/TLS暗号化やOAuth認証など)に対応しておらず、単純なSMTP認証しかできないためセキュリティ上のリスクがあるためです。
代用案
PowerShellスクリプト(Send-MailMessageコマンドなど)を作成し「プログラム/スクリプト」でそのスクリプトを実行する方法が推奨されます。
メッセージの表示(非推奨・使用不可)
タスク実行時に画面上にポップアップメッセージを出す機能ですが、こちらも現在は使用できません。
なぜ使えないのか?
こちらも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つ同時に走ること)を防げます。データの破損などを防ぐため、通常はこの設定が安全です。
まとめ:タスクスケジューラーを使いこなそう
Windowsタスクスケジューラーの各タブについて、画像付きで詳しく解説してきました。
この記事のポイント:
- 全般タブ: 実行権限(特に「最上位の特権で実行する」)が重要だよ。
- トリガータブ: 9種類のトリガーから適切なものを選ぶ。「スタートアップ時」と「ログオン時」の違いに注意だよ。
- 操作タブ: 「プログラムの開始」のみが今でも使えるよ。
- 条件タブ: バッテリー駆動時の制御やスリープ解除の設定が可能だよ。
- 設定タブ: 多重起動の制御やタイムアウト設定が重要だよ。
タスクスケジューラーは最初は複雑に見えますが一度理解してしまえば「毎日のバックアップ」「起動時のアプリ自動起動」「スリープ復帰後のメンテナンス」など、さまざまな自動化が実現できる便利なツールです。

