Q

 専任の管理者を配置していない支店にあるWindows 2000Serverの動作が,時々不安定になります。そんなときに本社からリモートでシャットダウンや再起動といったメンテナンス作業をしたいのですが,どうすればよいのでしょう?セキュリティ上の問題からターミナル・サービスは利用したくありません。

A

 Windows 2000 Serverをリモートからシャットダウン/再起動させるには,いくつかの方法があります。最も簡単なのはOSの標準機能を利用する方法です。意外と知られていませんが,実はWindows2000以降の標準機能で管理者権限のあるユーザーがリモートのサーバーをシャットダウンさせたり再起動させたりできます。

[コンピュータの管理]から再起動が可能
 まず,管理者のマシンから管理ツールのメニューにある[コンピュータの管理]を起動します。このツールは,デスクトップ上にある[マイコンピュータ]を右クリックしたメニューから[管理]を選択しても起動できます。


△ 図をクリックすると拡大されます
図1●管理ツールにある[コンピュータの管理]の[起動/回復]にはシャットダウン/再起動を実行できるボタンがある

 続いて[操作]-[別のコンピュータへ接続]を選択して[コンピュータの選択]画面から対象のサーバーを選択します。きちんと接続された場合には,左側ペインのツリー最上位にサーバー名が表示されるはずです(図1)。

 その最上位にある[コンピュータの管理]の表示を右クリックし[プロパティ]を選択します。すると,リモートのサーバーに接続しプロパティ画面を表示します。この画面で[システム]の部分は[Microsoft Windows 2000Server]になっているはずです。

 さらに[詳細設定]のタブにある[起動/回復]のボタンをクリックすると,画面右下に[シャットダウン]ボタンがある画面が表示されます。このボタンで遠隔地にあるサーバーをシャットダウン/再起動できます。

 実際にボタンを押すと,ターゲットのサーバーに対する作業内容の選択画面が表示されます。この画面からログオフ/シャットダウン/再起動/電源切断といった実行したい作業や,稼働中のアプリケーションが実行中の場合の対処を選択して[OK]ボタンを押せば,すぐリモートのサーバーに対して命令を実行します。これらの一連の手順はサーバーのOSがWindows Server2003でも同様に実行可能です。

 なお,[マイコンピュータ]の右クリックから開くシステムのプロパティ画面にも詳細タブに[起動/回復]という似たメニューがあります。しかし,ここには[シャットダウン]ボタンはありませんので注意してください。

コマンドやスクリプトでも実行可能
 ここまで紹介した標準機能を使う方法が,GUIで比較的簡易に操作できるため便利です。ターゲットのサーバーが少なかったり,障害発生時などの緊急のような場合に最適でしょう。

 しかし,複数のマシンを連携させてサービスしているシステムなど,複数のサーバーに対して同時にシャットダウンや再起動の作業を実行したいことがあります。このような場合はコマンド・ツールを利用するのが便利です。日次や週次で定期的に運用したり,バッチ・ファイルやアプリケーションから使うことも可能です。

 例えば,マイクロソフトからshutdown.exeとrestart.vbsという2種類が提供されています。どちらも,リモートとローカルのどちらに置いてもよく,ほぼ同様の使い方ができます。

 ただし,いずれのツールを使った場合も,作業が成功したかどうかを判断するメッセージは表示されません。そのため,利用に当たっては実行結果を確認する方法を考慮したバッチ・ファイルを作成する必要があります。

 ここでは,shutdown.exeツールを使う方法を説明します。このツールはWindows NT ServerとWindows2000 Serverのリソース・キットに含まれています。Windows Server 2003には\system32フォルダに標準で組み込まれています。それぞれのバージョンで内容が若干異なっていますので,注意してください。

成否の確認を組み込んだバッチを作成


△ 図をクリックすると拡大されます
図2●shutdown.exeを使ってリモートのサーバーを再起動するバッチ・ファイルの例
 shutdown.exeを使ったバッチ・ファイルの例が図2です。まず,実行する管理者のマシンのイベント・ログにサーバーの再起動を開始するメッセージを書き込んでから,サーバーをリブートさせます。ただし,前述したようにshutdown.exeでは結果が成功したか失敗したかを把握できません。

 そこで,サーバー側のスタートアップ・スクリプトにあらかじめバッチ・ファイルを登録しておき,起動時にステータスをテキスト・ファイルとして書き込むようにしておきます。管理者が実行するバッチではsleepなどで再起動にかかる時間まで待機してから,そのサーバー上のステータス・ファイルを検索します。これにより,再起動の成否を確認できるようにしています。

 一方,「restart.vbs」はWebからダウンロードします(該当サイト) 。このツールはVBScriptになっているので必要に応じて内容を修正できます。これを「cscript c:\restart.vbs /S コンピュータ名/R」のようにバッチ・ファイルに記述して使用できます。アプリケーションにも組み込めるため,Visual Basicに慣れている場合は便利でしょう。

鈴野 篤志