Programming Field

Schtasks /Change - DOS/コマンドプロンプト コマンド一覧

登録済みのスケジュールされたタスクの設定を変更します。Schtasksのコマンド(オプション)の1つです。

構文

schtasks[.exe] /Change [/S <remote-system> [/U <user-name> [/P [<password>]]]]
    /TN <task-name> [/TR <command>] [/ST <start-time>] [/RI <interval>]
    [{/ET <end-time> | /DU <duration>} [/K]]
    [/SD <start-date>] [/ED <end-date>] [/DELAY <delay-time>] [/IT]
    [/RU <user>] [/RP <password>] [/RL <level>] [/Z]
    [/ENABLE | /DISABLE] [/HRESULT]

オプション一覧

※ /TR, /ST, /RI, /ET, /DU, /SD, /ED, /DELAY, /IT, /RU, /RP, /RL, /Z は少なくとも1つ指定する必要があります(何かしらの設定が変更される必要があります)。
※ Windows XPでは /TR もしくは /RU, /RP のみが指定できます。

/S <remote-system> タスクが登録されているコンピューター(ローカル/リモート)の名前を指定します。IPアドレスやホスト名を指定します。省略した場合はローカルコンピューターが対象になります。
/U <user-name> [/P [<password>]]

コンピューター名を指定した際のログイン名・パスワードを指定します。<user-name> にはドメイン名を指定することができます(「ドメイン名\ユーザー名」の形式です)。省略した場合はこのコマンドを実行したユーザーが使用されます。

パスワード指定は、「/P [<password>]」全体を省略した場合はパスワードなし、「/P」のみ指定して「<password>」を省略した場合はプロンプトを表示してユーザーにパスワード入力を促すようになります(このプロンプトでは入力されたパスワードが「*」で表示されます)。

/TN <task-name> タスク名を指定します。タスク名にスペース文字が含まれている場合は「" "」で括ります。タスクがフォルダー階層内に存在する場合はそのパスも含めて指定します。
/TR <command>

実行するコマンドを指定します。<command> には実行可能ファイル名+パラメーターを指定します。

コマンドにパラメーターを指定する場合は、コマンドライン全体を「" "」で括る必要がありますが、コマンドラインに「"」を含めたい場合は「""」と書きます。

※ 「"」の解釈が若干特殊で、「""」と書いた場合は「コマンドラインに " を(その位置に)含める」+「" " の括りを始める/終える」という効果になります。例えば「hoge "piyo piyo"」というコマンドラインを渡す場合は「"hoge """piyo piyo""」と書く必要があります。

/ST <start-time> [Windows Vista以降] タスクを開始する時刻を指定します。<start-time> に「hh:mm」(時2桁+「:」+分2桁)の形式で24時間形式で指定します。スケジュールの種類(「schtasks /Create」の「/SC」を参照)が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/RI <interval>

[Windows Vista以降] タスクを繰り返し実行する際の間隔を分単位で指定します。スケジュールの種類が DAILY, WEEKLY, MONTHLY, ONCE の場合にのみ指定できます(ONCE 以外の場合は、それぞれのスケジュールごとにさらに繰り返され、例えば MONTHLY の場合は毎月トリガーされた後、そこから /RI での間隔でさらに繰り返されます)。/ET または /DU で計算される時刻まで繰り返し実行されます。スケジュールの種類が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。

/ET または /DU が指定されて /RI が省略された場合、タスクは10分間隔で実行されます。

/ET <end-time> [Windows Vista以降] タスクを終了する時刻(有効期限)を指定します。<end-time> に「hh:mm」(時2桁+「:」+分2桁)の形式で24時間形式で指定します。終了時刻は /ST から数えて繰り返し実行を1回行った時刻よりも大きい時刻である必要があります(例: /ST 16:25 /RI 1 の場合は /ET は 16:27 以降である必要があります)。スケジュールの種類が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/DU <duration> [Windows Vista以降] タスクを何分間繰り返すかの時間を分単位で指定します。この値は /RI (未指定の場合は 10) より大きい値である必要があります。スケジュールの種類が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/K [Windows Vista以降] /ET または /DU で計算される終了時刻に到達した際、タスクがまだ実行中であれば終了シグナルを送ります。この場合、タスクの実行記録には強制終了された旨が残ります。スケジュールの種類が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/SD <start-date> [Windows Vista以降] タスクを開始する日付を指定します。<start-date> にはシステム設定に基づいた日付を年から指定します(通常の日本語環境であれば「yyyy/mm/dd」形式)。省略した場合は現在の日付が使用されます。スケジュールの種類が ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/ED <end-date> [Windows Vista以降] 繰り返し実行するタスクの終了日(有効期限)を指定します。<end-date> にはシステム設定に基づいた日付を年から指定します(通常の日本語環境であれば「yyyy/mm/dd」形式)。スケジュールの種類が ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT の場合には指定できません。
/DELAY <delay-time> [Windows Vista以降] スケジュールの種類が ONSTART, ONLOGON, ONEVENT のときトリガーされてから実際にコマンドを実行するまでの遅延時間を指定します。<delay-time> には遅延時間を「mmmm:ss」形式で指定します(例: 2秒なら 0000:02 と指定します)。
/IT

[Windows Vista以降] /RU で指定したユーザー(未指定の場合はコマンド実行時のユーザー)がログインしている場合のみタスクを実行します。既定では /IT が指定されたものと同じ状態でタスクが作成されます。

なお、/RU で SYSTEM を指定している場合は /IT は無視されます。

※ 「schtasks /change」では「/NP」は指定できません。ユーザーがログインしていなくても実行するタスクにする場合は、「schtasks /Create」でタスクを作り直す必要があります(その場合、「schtasks /Query」でXMLを出力して「schtasks /Create /XML」に渡しつつ「/NP」を付けることで作り直せます)。

/RU <user> タスクを実行する際のユーザーを指定します。ビルトインユーザーの「SYSTEM」なども使用できます。「schtasks /Create」で /NP が指定されていない場合はこのユーザーがログインしている場合にのみタスクが実行されます。
/RP [<password>] タスクを実行する際のユーザーのパスワードを指定します。<password> を省略した場合(/RP のみ指定した場合)はパスワードが尋ねられます。「/RU」を指定せずに /RP のみを指定することもできます(その場合は既にタスクに設定済みのユーザーに対するパスワードを変更します)。
/RL <level> [Windows Vista以降] タスクを実行する際のレベルを指定します。<level> には LIMITED (通常) か HIGHEST (最上位の特権) のいずれかを指定します。
/Z

[Windows Vista以降] タスクが実行された後これ以上実行されない場合、タスクを削除します。(実際には1秒後に削除されます。)

※ /Z を指定した場合、/DU は使用できず、/ET を指定する必要があります。(/DU を指定した場合「タスク XML に必須の要素または属性が含まれていません。(45,4):EndBoundary:」というエラーが発生します。)

/ENABLE [Windows Vista以降] タスクを有効化します。既に有効化されている場合はその旨のメッセージが表示されます(コマンド自体は成功します)。
/DISABLE [Windows Vista以降] タスクを無効化します。無効化するとスケジュールのタイミングが来ても実行されなくなります(/RI で繰り返していた場合は無効化の間実行がスキップされつつ繰り返しは計算され、再有効化すると再び実行されるようになります)。既に無効化されている場合はその旨のメッセージが表示されます(コマンド自体は成功します)。
/HRESULT [Windows 10?以降] Schtasksコマンドの終了コードを HRESULT にします。エラー発生時に詳細なハンドリングを行いたい場合に使用します。

解説

Schtasksの「/Change」を使えば既に登録済みのタスクについて設定を変更したり有効・無効を切り替えたりすることができます。変更したい項目が複数ある場合は一度にそれらに対応するオプションを指定すれば、一回で設定変更することができます。

スケジュールの種類(「日ごと」や「月ごと」etc.)など一部「/Change」では変更できない設定があります。その場合は、「schtasks /Create」でタスクを登録しなおすか(/F オプションで上書き可能)、GUIの「タスク スケジューラ」で変更する必要があります。

サンプル

schtasks /change /tn "Hoge Piyo" /tr HogePiyo.exe

タスク「Hoge Piyo」が実行するプログラムを「HogePiyo.exe」に変更します。

関連項目