Landscape トップページ | < 前の日 2005-08-31 2005-09-01 次の日 2005-09-06 >

Landscape - エンジニアのメモ 2005-09-01

shutdown.exe とタスクで Windows を自動シャットダウン


* shutdown.exe とタスクで Windows を自動シャットダウン

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Windows]

とある理由で、常時稼働の Windows サーバを朝の 07:30 にシャットダウンすることになった。自動でやりたいので方法を探したところ、shutdown.exe というコマンドが標準で Windows にもあることがわかった。これを使えばいい。

- shutdown.exe でシャットダウン

WindowsXP や Windows2003 Server なら標準で shutdown.exe というツールがあるので、これをコントロールパネルのタスクや at から実行するだけ。ACPI に対応したマシンなら、ちゃんと電源まで切れる。

shutdown.exe は -s オプションを付けないと実行してもヘルプを表示するだけなので、忘れずに付ける。これは Linux の shutdown コマンドと同じ挙動だ。ただ、オプションが Linux と微妙に異なる。Windows の shutdown コマンドでマシンをシャットダウンしたいときのオプションは -s だ。shutdown の略なんだろうね。Linux は -h で、halt の略。

以下、WindowsXP 付属の shutdown.exe のヘルプ。

shutdow.exe
使用法: c:\WINDOWS\system32\shutdown.exe [-i | -l | -s | -r | -a] [-f] [-m \\コンピュータ名] [-t xx] [-c "コメント"] [-d up:xx:yy]

    引数なし        このメッセージを表示します (-? と同じです)
    -i            GUI インターフェイスを表示します。このオプ
                ションは最初に指定する必要があります
    -l            ログオフ (-m オプションとは併用できません)
    -s            コンピュータをシャットダウンします
    -r            コンピュータをシャットダウンして再起動します
    -a            システム シャットダウンを中止します
    -m \\コンピュータ名    シャットダウン/再起動/中止するリモート コン
                ピュータの名前です
    -t xx            シャットダウンのタイムアウトを xx 秒に設定
                します
    -c "コメント"        シャットダウンのコメントです (127 文字まで)
    -f            実行中のアプリケーションを警告なしに閉じます
    -d [u][p]:xx:yy        シャットダウンの理由コードです
                u = ユーザー コード
                p = 計画されたシャットダウンのコード
                xx = 重大な理由コード (255 以下の正の整数)
                yy = 重大ではない理由コード (65535 以下の正の
                整数)

コメントや理由コードの指定もできるのか。なかなか高機能。

- Windows2000 で shutdown.exe を使う

Windows2000 には shutdown.exe がない。ただ、私が試した限り、WindowsXP の shutdown.exe を持ち込んで実行したところ、問題なくシャットダウンすることができた。後述する「タスク」との組み合わせも問題なし。試した環境は Windows2000 Server SP4 だ。

ライセンスとかに問題がなければ、使ってみるのも一興。ちなみに、shutdown.exe は WindowsNT の時代からリソースキットに収録されているらしいので、実運用で使うならリソースキットのバイナリを使うのが良いだろう。

- タスクスケジューラと shutdown.exe で日時を指定した自動シャットダウン (無事に成功)

コントロールパネルの「タスク」に shutdown.exe をスケジュールする方法。

タスクを新規追加。
「スケジュールされたタスクの追加」ではなく、右クリックから「新規」の「タスク」を選んだ。shutdown コマンドに -s オプションを渡すように記述するためには、結局タスクのプロパティを開く必要があるからだ。

「実行するファイル」のテキストボックスに shutdown.exe のパスと -s オプションを記述。
私の環境では c:\WINDOWS\system32\shutdown.exe -s と記述した。その後

Administrator のパスワードを入力して設定完了。これだけ。

追記。
タスクと shutdown.exe の組み合わせで無事シャットダウンできた。事前のテストで大丈夫だったから心配はしていなかったが。Windows2003 Server のイベントログには以下のイベントが記録されていた。Windows 2000 のサーバには「イベントログサービスが停止した」という情報くらいしか記録されていなかったんだけど、そういうものだったっけ?

イベントの種類:    情報
イベント ソース:    Application Popup
イベント カテゴリ:    なし
イベント ID:    26
日付:        2005/09/04
時刻:        7:30:02
ユーザー:        N/A
コンピュータ:    BJORK
説明:
アプリケーション ポップアップ: 休む : システムはシャットダウンされます。進行中の作業をすべて保存し、ログオフしてください。保存されていない情報は失われます。シャットダウンは、BJORK\Administrator によって開始されました。シャットダウンは 30 秒後に開始されます。

詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。

イベントの種類:    成功の監査
イベント ソース:    SECURITY
イベント カテゴリ:    システム イベント
イベント ID:    513
日付:        2005/09/04
時刻:        7:30:38
ユーザー:        N/A
コンピュータ:    BJORK
説明:
Windows をシャットダウンしています。 シャットダウンにより、すべてのログオン セッションが終了します。

詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。

- at コマンドから shutdown.exe を使う (失敗)

本当は at コマンドを使ってコマンドラインからスケジュールしたかったのだが、うまくいかなかった。実行アカウントの問題のようだ。以下、試したこと。

at コマンドで shutdown コマンドをジョブに追加。
C:\>at 18:29 /interactive /next:1 "shutdown -s"
新しいジョブをジョブ ID = 31 で追加しました。

追加はできるのだが、いざ時間になると以下のメッセージが表示されてシャットダウンされない。
ログオン セッションは、要求された操作と矛盾する状態です。

うーん、ダメなのか。at で実行アカウントを指定するのってどうやるんだっけ? 調べてる時間がないから、今回はタスクスケジューラでいいか。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。