Skip to content

タスクスケジューラ ​

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 - 70 と 7 はどちらも日曜日を表します

各フィールドは以下の構文に対応しています:

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

注意:カンマ区切りの複数値(1,15 など)や範囲式(1-5 など)には対応していません。その他の制限については、下の注意事項を参照してください。

対応している組み合わせパターン ​

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

#パターン説明適用シーン
1* * * * *毎分実行監視系、リアルタイム検出系のタスク
2*/N * * * *N 分ごとに 1 回実行周期的なチェックタスク
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 時という 1 時間内の毎分を表します)が、本ソフトウェアは上に列挙した 7 種類の固定パターンのみをサポートしており、この範囲外の式は拒否されます。

3. ステップパターンの時間アライメントの違い ​

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

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