Windows NTでタスクを管理するにはat.exeコマンドを利用していたが、Windows 2000以降ではGUIの[タスク]管理ツールも利用可能になった。Windows XP/Windows Server 2003では、at.exeから機能が向上したschtasks.exeコマンドが利用可能になった。at.exeで作成したタスクを[タスク]管理ツールやschtasks.exeで変更すると、at.exeでは管理できなくなる。
対象OS:Windows 2000/Windows XP/Windows Server 2003
Windows OSの「タスク」は、設定したプログラムを、あらかじめ決められた日付や時間になると実行する機能である。定期的に実行する作業、例えばシステムやデータのバックアップ、データやシステム状態の同期、定時的な動作状況のレポート作業、ログ・ファイルの整理(古いログの削除や移動)など、さまざまな場面で利用できる。このほかにも、例えばウイルス・チェック・ソフトウェアで、定期的な更新のチェックなどで利用されている場合もある。
タスクを実現するサービスは、Windows NTでは「schedule」というサービスによって実現されていた。「schedule」サービスは、システムに登録されたタスクを監視しており、指定された時間になるとタスクを起動する、という動作を行う。
これに対しWindows 2000/Windows XP/Windows Server 2003では、このサービスは改良され、新しく「Task Scheduler」サービスによって管理されるようになった。改良点としては、GUIによるタスク管理ツールの追加、タスクごとの実行アカウントの指定(従来はすべてのタスクが同一アカウント権限で実行された)、複数の実行スケジュールの設定、ログオン時やアイドル時のタスク実行、などがある。
タスク関連のサービスの変更に伴い、タスクを管理する方法は、OSのバージョンに応じて少しずつ異なっている。
■Windows NTの場合
Windows NTでタスクを作成/削除するには、コマンドライン・ツールのat.exeコマンドを利用する。GUIのツールはなく、しかも1度作成したタスクを修正することはできない。実行スケジュールや実行するコマンドを変更するには、1度削除してから、新規に作成し直す必要があるなど、使い勝手はよくない。
■Windows 2000の場合
Windows 2000では、[コントロール パネル]に新しく用意された[タスク]アプレットを利用してタスクを管理する。従来のat.exeコマンドも利用できるが、これは互換性のためだけに残されているコマンドである。at.exeで作成したタスクもこの[タスク]アプレットで表示されるが、1度でも[タスク]アプレットで設定内容を変更すると、そのタスクはWindows 2000の「Task Scheduler」サービス用に昇格・変更され、at.exeコマンドではもう一覧を見ることさえできない。
■Windows XP/Windows Server 2003の場合
GUIツールの[タスク]管理ツールに加えて、新しくschtasks.exeというコマンドが用意された。これはコマンド・プロンプト上で利用するツールであり、GUIの[タスク]管理ツールで作成されたタスクと互換性がある。Windows XP以降のOSでは、at.exeは利用せず、必ずこちらを利用するべきである(Windows 2000同様、互換性のためにat.exeコマンド自体は提供されている)。
telnetなどでリモートからログオンして作業する場合、GUIのタスク制御ツールを利用できないので、代わりにschtasks.exeを使ってタスクを管理する。schtasksコマンドの使い方は、「schtasks /?」を実行すると表示されるし、[ヘルプとサポート センター]で「schtasks」を検索すれば、へルプ・メッセージを見ることもできる。以下ではローカルのタスクを管理する例を示すが、引数に「/s コンピュータ名」を付けて、リモートのコンピュータのタスクを管理することもできる。
タスクを作成するには、「schtasks /create」コマンドを利用する。次の例は、毎日朝4:00にバックアップ・コマンドを起動するタスクの作成例である。
C:\>schtasks /create /tn "Backup App" /tr c:\windows\backup.cmd /sc daily /st 04:00:00
タスクは現在ログオンしているユーザー名 ("EXAMPLE\user01") の名前の下で作成されます。
EXAMPLE\user01 の実行者パスワードを入力してください: ******* ……パスワードの入力
成功: スケジュール タスク "Backup App" は正しく作成されました。
作成したタスクの内容は、引数なしでschtasksコマンドを実行すると表示されるし、「schtasks /query /v」コマンドなどを使ってさらに詳細に表示させることもできる。
C:\>schtasks
タスク名 次回の実行時刻 状態
==================================== ======================== ===============
Backup App 04:00:00, 2005/06/21
タスクを削除するには、「schtasks /delete」コマンドを利用する。引数には「/tn タスク名」を付け、削除対象のタスクを指定する。
C:\>schtasks /delete /tn "Backup App"
警告: タスク "Backup App" を削除しますか (Y/N) ? y ……確認の入力
成功: スケジュール タスク "Backup App" は正しく削除されました。
タスクの設定内容を変更するには、「schtasks /change」コマンドが利用できるが、このコマンドでは実行するプログラムや実行アカウントの変更しかできない。実行スケジュールは変更できないので、必要ならばタスクをいったん削除してから再作成するか、GUIの[タスク]管理ツールを利用して修正する。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.