treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

(2/2)タスクスケジューラのコマンドオプションを調べてみる

前回「(1/2)タスクスケジューラのコマンドオプションを調べてみる」で実施したタスクスケジューラをコマンドから登録して検証する内容の後編です。
自分が使ったところだけですが、コマンドオプションと実際のタスクスケジューラの画面を併記して後から自分が見ても分かりやすくしています。

前回はタスクスケジューラプロパティの「全般」タブ画面内の設定をコマンドオプションで確認してきましたが、今回はタスクスケジューラのポイントとなる「トリガー」についての記載となります。

タスク「トリガ」指定

タスク画面の「トリガ」タブを指定する方法をいくつか。前述のように「/SC」オプションで指定することになります。

まずはタスク作成で

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC DAILY /ST 12:00

と作成した場合、

このように、「毎日12:00(24時間表記、PM12:00)に実行されるタスク」が生成されます。

次に、月次タスクを作ってみます。

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC MONTHLY /MO FIRST /D SAT

と作成すると、

このように「毎月第1土曜日にタスクを実行」というタスクを作成できます。と、これだとタスク実行時間がトリガの時間になってしまうので、前述の/STオプションを追加して、

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC MONTHLY /MO FIRST /D SAT /ST 12:00

とすると、

このように「12:00」という時間が指定できるので、「毎月第1土曜日の12:00にタスク実行」というタスクを生成できます。バックアップとかに使いそうな指定です。

次は一回だけ実行するタスクの作成をしてみます。

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC ONCE /ST 18:00

と実行して、

一回だけのタスクを時間指定して生成することができます。今回の記事では触れていませんが、リモートコンピュータに接続してタスクの登録をすることもできるコマンドなので、別のPCにタスクを登録するとき一回だけ実行、という使い方はあるかも。

最後はあまり使わないのですが、「コンピュータの起動時の実行」となるタスクです。

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC ONSTART

と実行して、

このように「スタートアップ時:システム起動時」というトリガでタスクが作成されます。

組み合わせで様々な起動タイミングを指定することができますが、あまり複雑なタスクを作成していないため、今回は覚えやすいこれくらい。

タスク「トリガ」オプション

トリガ画面の下部には「詳細設定」という設定箇所が用意されています。

この部分の指定で「遅延時間を指定する」は「/DELAY」オプションで指定します。

SCHTASKS /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC ONLOGON /IT /RL HIGHEST /DELAY 0005:00

こう実行した場合、「遅延時間を指定する」の箇所に「5分間」の起動待ち時間が設定されます。

「/SC ONLOGON」なのでログオン後に5分経過してからタスクを実行するという動きをする様になります。

次の「繰り返し間隔」の指定は、時間指定と組み合わせて使うことになります。

schtasks /Create /RU %USERNAME% /TN Test-Task-1 /TR "C:\temp\test\test.bat" /SC HOURLY /MO 2 /ST 09:00 /ET 18:00 

と実行すると、

タスクを実行した日の(/STで指定した)AM9:00~(/ETで指定する)18:00まで実行するタスクが作成され、そのタスクは2時間おきに実行される、というタスクが設定されます。/SCオプションでHOURLY=時間毎、/MOオプションで2時間おきという指定をしています。

今回はこれまで

結局記事中に「schtasks /Change」はほとんどなく「schtasks /Create」ばっかりになってしまいました。しかもこれ以外にもたくさんのオプションが用意されているので、まだ紹介し切れていません。
詳しくは、

schtasks /create /?

で確認可能です。

「schtasks /Change」を使うことがあったら、また別途記事にしてみたいと思います。