Skip to content

Task Scheduler 機能紹介

Task Scheduler(タスクスケジューラ)は、WSL で 定期的なタスクを自動化 するために使用され、繰り返しの手動メンテナンス操作を回避します。複雑なコマンドラインパラメータを覚えることなく、スケジュールされたタスクを作成および管理できるビジュアル管理インターフェースを提供します。

この機能の使用例:

  • WSL ディストリビューションの定期的なバックアップ
  • カスタムスクリプトまたはコマンドの実行

すべてのタスクは、一元管理と表示のために Windows タスクスケジューラの \WSLDashboard\UserTasks\ パスの下に収集されます。インターフェースでタスクのリアルタイムステータス(準備完了 / 実行中 / 無効)を確認できます。

コミュニティスクリプト

コミュニティリポジトリからサンプルスクリプト(ディストリビューションのバックアップ)をダウンロードして、すぐに始めることができます:

https://github.com/owu/wsl-community

これはコミュニティ主導のコードリポジトリです。スクリプトの提供やベストプラクティスの共有のためのPull Requestを歓迎します。

コマンドの実行

コマンド設定

各スケジュールタスクは、以下のオプションをサポートするコマンド(スクリプトまたは実行可能ファイル)で設定できます。

設定説明
コマンドスクリプトまたは実行可能ファイルへのパス。.bat, .ps1, .cmd, .exe, .py 形式をサポートします。「参照」ボタンを使用してファイルを選択します。
引数コマンドに渡す追加の引数(オプション)。
管理者権限で実行有効にすると、タスクは最高権限で実行され、UAC 昇格が必要な操作に適しています。

タスク操作

タスクを作成した後、次の操作を実行できます。

操作説明
今すぐ実行スケジュールルールに関係なく、タスクを即座に強制実行します。
有効/無効タスクの自動スケジュールを一時停止または再開します。
削除タスクスケジューラからタスクを削除します。

スケジュールルール

Cron 式

タスクスケジューリングは、標準の 5フィールド Cron 式 を使用して実行ルールを定義します。形式は次のとおりです。

分 時 日 月 曜日
フィールド範囲説明
0 - 59実行する時間の分
0 - 23実行する日の時間
1 - 31実行する月の日
1 - 12実行する年の月
曜日0 - 7曜日(0 と 7 はどちらも日曜日を表します)

各フィールドは次の構文をサポートします。

  • * —— すべての値に一致(例:* * * * * は毎分実行します)
  • */N —— N 単位ごとに実行(例:*/5 * * * * は 5 分ごとに実行します)
  • 単一の数値 —— 特定の値に一致(例:0 9 * * 1 は毎週月曜日の午前 9:00 に実行します)

注意:カンマ区切りの複数値(1,15 など)と範囲式(1-5 など)はサポートされていません。詳細な制限については、下記の注意事項を参照してください。

サポートされている組み合わせパターン

本ソフトウェアはネイティブの Cron デーモンを実行せず、Cron 式を Windows タスクスケジューラ(schtasks.exe のトリガーパラメータに変換します。正確にマッピングするため、パーサーでは以下の 7 種類の組み合わせパターン のみをハードコードでサポートしており、ほとんどの定期タスクのシナリオをカバーします。

#パターン説明適用シナリオ
1* * * * *毎分実行監視、リアルタイム検出タスク
2*/N * * * *N 分ごとに実行定期的なチェックタスク
3M * * * *毎時 M 分に実行(例:3 * * * *定時タスク
4M H * * *毎日 H 時 M 分に実行(例:0 3 * * *日常メンテナンス(例:毎日深夜にログをクリーンアップ)
5M H * * DOW毎週特定の曜日の H 時 M 分に実行(例:0 12 * * 1毎週の定期タスク(例:毎週月曜日にデータをバックアップ)
6M H D * *毎月特定の日の H 時 M 分に実行月次タスク(例:毎月 1 日にレポートを生成)
7M H D MON *毎年特定の月と日の H 時 M 分に実行年次タスク(例:指定した月に実行)

式が上記の 7 パターンのいずれにも該当しない場合、システムは Unsupported cron pattern とみなして作成を拒否します。

注意事項

本ソフトウェアは Windows タスクスケジューラをベースに実装されているため、Cron パーサーは標準の Linux Cron と以下の点で異なります。

1. リスト(,)と範囲(-)はサポートされていません

標準 Cron では、カンマを使用して複数の離散的な時間ポイントを定義したり(例:1,15,30 * * * * は 1、15、30 分を意味します)、ハイフンを使用して範囲を定義したりできます(例:1-5 * * * * は 1 分から 5 分を意味します)。

本ソフトウェアの制限: 各フィールドには単一の数値アスタリスク(*、またはステップ(*/N のみを入力できます。カンマとハイフンはサポートされていません。

2. 自由な組み合わせはサポートされていません

標準 Cron では任意のフィールドの自由な組み合わせが可能ですが(例:* 3 * * * は毎日午前 3 時の毎分を意味します)、本ソフトウェアは上記の 7 種類の固定パターンのみをサポートしており、この範囲外の式は拒否されます。

3. ステップパターンの時間調整の違い

標準 Cron では、*/5 * * * * は厳密に時計の 0、5、10、15... 分に合わせられます。本ソフトウェアではこれを Windows の /SC MINUTE /MO 5 パラメータに変換します。Windows の処理ロジックは、タスクが作成または有効化された瞬間から間隔を計算します。

例えば、10:02 に 5 分ごとに実行するタスクを保存して有効化した場合、最初の実行は 10:07 になり、次は 10:12 になります。標準の時計の 10:05 には合わせられません。