Windowsサーバをリモートから強制的にOSリブートする
id:rx7が『Linuxのサーバをリモートから強制的にOSリブートする』を投稿していたので、Windows Terminal Serviceへのリモートデスクトップ接続が出来なくなったという前提のもと、Windowsサーバ版でリモートから強制的にOSリブートする方法を紹介します。
過去にTerminal Serviceデーモンがハングしてしまい、困ったことが実際にあったので、その時の対応フローを書いておきます。
※Windowsサーバの設定(セキュリティ・ポリシー)によってはリブートできないかもしれません。ちなみに以下で解説する方法は、Windowsクライアントからのみ可能なようです。Ubuntuで試してみたりもしたのですが、これに関しては無理でしたので。
今回のリブートする方法には、動作中のプログラム間(ネットワークを通じても可)でデータ交換するための仕組みであるIPC(InterProcess Communication)を利用します。
仮に、WindowsサーバのIPアドレスを192.168.1.10とします。
以下の手順は、DOS/Vプロンプトでコマンドを発行したものとします。
(1) WindowsクライアントからWindowsサーバに対してpingが通ることを確認
$ ping 192.168.1.10
(2) IPCで認証を通す(ここではadministratorで認証)
$ net use \\192.168.1.10\ipc$ /user:administrator *
(3) リブートコマンド実行
$ shutdown -r -m \\192.168.1.10
これでWindowsサーバが再起動するはずです。
試してみる際には、くれぐれも再起動しても影響の無いサーバでお試しください。