システムをリモートからシャットダウンするTech TIPS

システムが不安定になったり、応答がなくなったりした場合には、リモートからシャットダウンや再起動ができると便利である。リモートからシステムをシャットダウンしたい場合にはshutdown.exeコマンドを使う。GUI画面でも、コマンドラインでも利用できる。

» 2004年01月10日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000/Windows XP/Windows Server 2003



解説

 Windowsシステムの動作が不安定になったり、GUI画面の応答が遅くなったりした場合、システムを再起動させると症状が改善もしくは解決したりすることはそう珍しいことではない。だが、GUI画面そのものを操作できないような状態の場合には(画面表示がハングアップしているような場合には)、システムを再起動させることは非常に困難である。このような場合は、リモートからマシンをシャットダウンしたり、再起動させることができると便利である。

 リモートからシステムをシャットダウンさせるには、GUIで行う方法と、コマンドプロンプト上でコマンドを実行する方法の2種類がある。いずれの方法を使ってもよいが、素早くシステムをシャットダウンしたり、再起動させるためには、コマンドプロンプト上で作業を行う方が簡単でよいだろう。また、Telnet経由でシステムを利用している場合や、電源ダウンのような障害を検知して(UPSに接続されている)他のサーバーなども連鎖的に停止させたいといった用途では、コマンドライン版のツールが便利である。

操作方法

●GUIでリモートシャットダウンする

 GUIのツールを使ってシステムをシャットダウンするためには、まず[コンピューターの管理]ツールを起動し、リモートのコンピューターへ接続する。[コンピューター]の管理ツールは、デスクトップ上の[マイコンピューター]アイコンを右クリックし、ポップアップメニューから[管理]を選択すると起動する。

コンピューターの管理ツール コンピューターの管理ツール
デスクトップ上の[マイコンピューター]アイコンを右クリックし、ポップアップメニューから[管理]を選択するとこのツールが起動する。もしくは[スタート]メニューの[管理ツール]から[コンピューターの管理]を起動する。
  (1)デフォルトでは、ローカルコンピューターを管理するようになっているので、シャットダウン/再起動させたいリモートのコンピューターへ接続する。

 このツールを起動させると、デフォルトでは、ローカルコンピューターを管理するようになっている。そこでシャットダウン/再起動させたいリモートのコンピューターへ接続し直す。

リモートコンピューターの指定 リモートコンピューターの指定
コンピューターの管理ツールでは、ローカルだけでなく、リモートのコンピューターも管理することができる。
  (1)リモートコンピューターへ接続するにはこれを選択する。
  (2)シャットダウンさせたいリモートコンピューターの名前を指定する。先頭に「\\」を指定する必要はない。

 リモートのコンピューターへ接続したら、次はそのコンピューターの[プロパティ]を表示させる。

コンピューターのプロパティを表示させる コンピューターのプロパティを表示させる
シャットダウンさせるためには、コンピューターの[プロパティ]ダイアログを利用する。
  (1)管理しているコンピューターの名称がここに表示されている。これを右クリックしてポップアップメニューを表示させる。
  (2)ポップアップメニューから[プロパティ]を表示させる。→[A]

 シャットダウンを行うためのメニューは、[プロパティ]ウィンドウの[詳細設定]タブにある[起動/回復]メニューから起動する。

[A]

リモートのコンピューターのプロパティ リモートのコンピューターのプロパティ
シャットダウンを行うには、[詳細設定]タブにある[起動/回復]の[設定]ボタンをクリックする。
  (1)[詳細設定]タブを選択する。
  (2)シャットダウンを行うためには、これをクリックする。→[B]

 [起動/回復]ダイアログには、シャットダウン設定を起動するためのボタンが用意されている。

[B]

システムの起動/回復ダイアログ システムの起動/回復ダイアログ
ここでは、起動するOSの種類の選択や(BOOT.INIファイルの設定を変更する)、システム障害発生時の処理方法などを設定することができる。コンピューターの管理ツールでは、リモートコンピューターのシャットダウンや再起動を行うことができる。
  (1)システムをシャットダウンするにはこれをクリックする。→[C]

 [シャットダウン]ダイアログでは、ユーザーのログオフやシャットダウン、再起動などを制御することができる。

[C]

シャットダウンの制御 シャットダウンの制御
シャットダウンや再起動などの設定を行い、[OK]をクリックするとすぐに実行される。
  (1)デフォルト設定。ユーザーのログオフだけを行う。
  (2)システムをシャットダウンさせる。画面には電源を切る準備ができたという表示が出たままの状態になる。
  (3)システムを再起動させる。
  (4)システムがサポートしていれば(APMもしくはACPIなどにより、ハードウエア的に電源をオフにすることが可能なシステムならば)、シャットダウン後にシステムの電源をオフにする。ハードウエア(およびBIOS)のサポートがない場合は、(2)のシャットダウンと同じである。
  (5)以下の3つはアプリケーションを強制終了させるかどうかを選択する。アプリケーションが実行されている場合は、シャットダウンや再起動などを行わない。ユーザーがログオンしていないから、ログオンしていても、アプリケーションが1つも動作していない場合にのみシャットダウン処理を行う。
  (6)アプリケーションがハングアップしている場合(システムからの応答がない場合)、そのアプリケーションを強制的に終了させる。
  (7)全てのユーザーアプリケーションを強制的に終了させる。
  (8)これをクリックすると、すぐにシャットダウンや再起動などの処理が行われる。

 このダイアログにある[操作]と[アプリケーションの強制終了]をそれぞれ適宜選択し、[OK]をクリックすると、すぐに実行される。

●コマンドプロンプトからシャットダウンする

 GUIを使った方法は、初心者には分かりやすいが、少々わずらわしく感じる場合もある。またGUIが利用できないような環境の場合は(例えばTelnetでログオンして作業している場合など)、コマンドプロンプト上からシャットダウンを行う方が便利である。

 コマンドプロンプトからシャットダウンを行うためのツールとして、Windowsではshutdown.exeというコマンドが用意されている。ただしこのコマンドは、Windows 2000ではResource Kitに含まれているが、Windows XPやWindows Server 2003では標準コマンドとしてあらかじめシステムに用意されている。

●Windows 2000の場合

 Windows 2000用のResource Kitに含まれているshutdown.exeでは、次のようにしてリモートのコンピューターを指定することができる。

C:\>shutdown \\server



 使い方は、「shutdown /?」とすれば表示されるし、パラメーターなしに単に「shutdown」と入力して実行すれば、次のようなGUI画面が表示され、コンピューターの指定や表示させるメッセージを指定することができる。

Windows 2000 Resource Kit版のshutdown.exeの使用例 Windows 2000 Resource Kit版のshutdown.exeの使用例
Windows 2000のResource Kitに含まれているshutdown.exeをパラメーターなしで実行すると、このようなGUI形式のシャットダウン画面が表示される。オプションやメッセージなどをセットして[OK]をクリックすると、指定された時間後に処理が実行される。
  (1)シャットダウンさせるコンピューターの名前。リモートのコンピューターを指定することができる。
  (2)これをクリックすると、コンピューターを選択する画面が表示される。
  (3)全ての実行中のアプリケーションを強制的に終了させてからシャットダウンを行う。
  (4)シャットダウン後にシステムを再起動させる。
  (5)相手のコンピューターに表示されるメッセージ。ユーザーがログオンしている場合は、ここに指定されたメッセージが表示される。
  (6)シャットダウンまでの待ち時間。デフォルトでは30秒となっている。0にすればすぐにシャットダウン処理が実行される。
  (7)これをクリックするとシステムのシャットダウンや再起動処理が行われる。
  (8)シャットダウン処理を中止する場合はこれをクリックする。シャットダウンの処理が(6)で示した時間からカウントダウンしている間にこれを押せば、シャットダウン処理を中止することができる。
  (9)これをクリックすると、何もせずに終了する。

●Windows XP、Windows Server 2003の場合

 Windows XPやWindows Server 2003では、Resource Kitなどを導入しなくても、もともとこのコマンドが用意されている。GUI機能も少し拡張されており、同時に複数のコンピューターをシャットダウンする機能などが追加されている。

 以下はWindows XP用のshutdown.exeのヘルプメッセージの例である(引数なしか「/?」を指定すると表示される)。Windows Server 2003用のshutdown.exeでは、さらにいくつかのオプションパラメーターが追加され、より細かくシャットダウンの理由などを記録できるようになっている(Windows Server 2003のヘルプメッセージでは、シャットダウンの理由コードの一覧も表示される)。

C:\>shutdown
使用法: shutdown [-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 以下の正の
                                整数)



 Windows 2000のResource Kit版と違い、GUI画面を表示させるには「-i」オプションを指定する。

 例えばこのコマンドを使って、リモートのコンピューターをシャットダウンさせるためには、次のようにパラメーターを指定する。

C:\>shutdown -s -m \\server01 -c "システムをシャットダウンします"



 「-s」はシャットダウンするという意味、「-m \\server01」はシャットダウンするコンピューターの指定、「-c "……"」はシャットダウン先のコンピューターに表示させるメッセージである。「-s」の代わりに「-r」を指定すると、システムを再起動させることができる。また「-t 数字」を指定すると、指定された時間だけ待ってからシャットダウンさせることができる(デフォルトは30秒)。また「-d」オプションを使って、イベントログに記録するシャットダウンの事由コードを指定することもできる。

●シャットダウン時に表示されるメッセージ

 以上いずれの方法を使っても、リモートのシステムをシャットダウンさせると、相手のコンピューターには以下のようなダイアログが表示される。これによりシャットダウンまでの時間やシャットダウンの理由(メッセージ)などを知ることができる。ユーザーが利用しているコンピューターを強制的にシャットダウンする場合は、待ち時間も長くするとともに、適切なメッセージを指定して、ユーザーが戸惑わないようにするべきであろう。

シャットダウン処理実行中のダイアログ シャットダウン処理実行中のダイアログ
シャットダウン処理が開始されると、該当するコンピューター上にはこのようなダイアログが最前面に表示される。ユーザーの側(シャットダウンされる側)でシャットダウン処理を中断することはできないので、ユーザーが戸惑わないように、適切なメッセージを指定しておくのが望ましい。
  (1)シャットダウンまでの時間。待ち時間はshutdownを実行する側で指定する。
  (2)シャットダウンに対するメッセージ。これもshutdownを実行する側で指定する。

 もしシャットダウン処理を中止したい場合は、「-a」オプションを指定して、shutdownコマンドを再実行すればよい。これにより、ダイアログの表示が消え、シャットダウン処理は中断される。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。