よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

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サーバが再起動するはずです。
試してみる際には、くれぐれも再起動しても影響の無いサーバでお試しください。