Windowsのタスクを使って一定時間後にシャットダウンさせる

決まった時間ごとに処理を行ったり、一定時間後にマシンをシャットダウンしたり、といったことが必要になるときがあります。
これを実現するために、Linuxの場合はcronを使いますが、Windowsではタスクと呼ばれている機能を使います。
このタスクを使ってWindowsを一定時間後に終了する処理を書いてみます。
環境はXPでしか試していませんが、2003でもいけるはずです。

シャットダウンするには

C:\WINDOWS\system32\shutdown.exeがシャットダウンのプログラムファイルです。
実行時に、shutdown -sと引数をつけてやる必要があります。

ウィザードを使ってタスクを登録

以下のいずれかの場所から「スケジュールされたタスクの追加」を開始してください。

  • コントロールパネル>タスク
  • C:\WINDOWS\Tasks\
  • アクセサリ>システムツール>タスク
  1. ウィザードを開始したら、まずは次へを押してください。
  2. 実行するプログラムを聞かれるので、「参照」から上記のshutdown.exeを選択してくさい。
  3. 名前は適当につけてもらって、「このタスクの実行」から適切なものを選んでください。(今回は「1回だけ実行」を選択)
  4. 日時を聞かれるので、今回は5分後に設定します。
  5. パスワードを入力します。処理によっては、ユーザに権限がないと実行できないものもあります。
  6. 最後に完了を押すと、ウィザードは終了します。

ウィザードを使うと引数の指定ができないようなので、あとからタスクを開いて実行するファイル名の後ろに-sを追加してください。
ウィザード終了前に「完了をクリックしたときに詳細プロパティを開く」にチェックをしておくと、終了した後にすぐタスクのプロパティが開くので簡単です。

コマンドからタスクを登録

ウィザードを使わなくても、以下のコマンドを打つことでコマンドプロンプトからタスクを登録することもできます。

schtasks /create /tn "shutdown2" /tr "C:\WINDOWS\system32\shutdown.exe -s" /sc ONCE /st 12:00:00

パスワードの入力を求められるので入力してください。
tnはタスクの名前。
trは実行するプログラムの位置。
scは実行するスケジュールの種類。(MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY, ONCEなど)
stは実行する時間。
とそれぞれ指定します。
削除方法や細かい設定は以下を参照してください。

終わりに

削除する場合は、タスクのフォルダに移動して、タスクをゴミ箱に送ればよいです。コマンドからも削除できます。
ノートPCだと、電源の状態によってタスクの実行を制御できるようです。デフォルトではタスクが実行されない設定になっているので注意が必要です。
今回は、shutdown.exeを実行しましたが、試してみる場合はメモ帳などで行ってみるとよいかもしれません。
また、自分でShellを書けば複雑な処理を行うこともできますので、いろいろと試してみたいですね。