会社でまだVirtualServer2005がまだ稼働してるのですが、いつ誰が使ってるかわからないので24時間稼働しっぱなしです。
そんな使い方をしていると、たまにホストOSにアクセスできない状態が発生するんです。
早い段階で見つかれば「IIS Admin Service」(と関連サービス)を再起動すれば回復するのですが、大体は「時すでに遅し」で強制再起動です。
(ログインすら数十分かかるので、ハード的な再起動です)
当然、ゲストOSの稼働状態は吹っ飛び、利用者からは「なんで~」って感じになるので、定期的にリブートしたいとは思うのですが、イチイチゲストOSを保存するのが面倒。
(Hyper-Vならシャットダウン時にゲストOSを自動保存できるのでいいですね。)
ネットを探すと、スクリプトでゲストOSの保存とかは転がってるんですけど、どのゲストOSが実行中だったかをスクリプトで保存するのがちょっと億劫になったので、VB.NETでツールを作成してみることに。
途中でいろいろ引っかかったところを以降で保存。
作ったツールはここに置いてますので、ご自由にどうぞ。
※使用は自由ですが、保証はしませんしサポートもしません。「自己責任」にてお願いします。
使用方法ですが、
RebootVirtualServer.exe [動作] [稼働中のVirtualMachine名を格納するファイル名]
・[動作]
"save"と"resume"しかありません。
save:稼働中のVirtualMachine名をファイルに出力し、「保存」状態に変更します。
resume:ファイルに保存されたVirtualMachine名を取得し、「実行中」状態に変更します。
・[稼働中のVirtualMachine名を格納するファイル名]
稼働中のVirtualMachine名の保存に使用するファイル名を指定します。
となります。