バックグラウンド:
Windows 2008 R2を使用して、小規模オフィスでHyper-Vでいくつかの仮想サーバーを実行しています。物理ホストは1つしかありません(すぐに変更する予定はありません)。 Hyper-V Server2012への移行を検討しています。
現在、サーバーを約20分間実行し続けてから、シャットダウンメッセージをWindows2008に送信する小さなUPSがあります。UPSはUSB経由で接続します。 Windows 2008はUPSをバッテリーとして認識し、バッテリーの監視に使用するEatonのソフトウェアもあります。 Windowsがシャットダウンすると、VMも適切にシャットダウンします。
UPSでサーバーをシャットダウンできるようにするためだけに、サーバー2012のフルバージョンを実行するオーバーヘッドは必要ありませんが、ActiveDirectoryとExchangeの電源が突然オフになることも望ましくありません。
UPSの電力がなくなったときに、Hyper-V Server 2012でVMを正常にシャットダウンさせることはできますか?
私が最終的に行った解決策は、起動時に実行されるVBScriptを作成することでした(cscriptとタスクスケジューラを使用)。
スクリプト:
set wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
set batteryColl = wmi.ExecQuery("select * from Win32_Battery")
set osColl = wmi.ExecQuery("select * from Win32_OperatingSystem")
while true
for each battery in batteryColl
battery.Refresh_
if battery.batteryStatus = 1 and battery.EstimatedChargeRemaining <= 25 then
for each os in osColl
os.Win32Shutdown 5
next
end if
next
wscript.Sleep 15000
wend
Hyper-Vサーバーは、少なくともこれらの点で、「サーバーコア」としてインストールされたWindows Serverと同じです。つまり、グラフィカルユーザーインターフェイスはありません。 UPS監視機能がその環境で機能するかどうかは、EatonのソフトウェアがGUIのない環境で実行できるかどうか、およびコマンドラインツールを使用してこれらを構成することに慣れているかどうかによって異なります。
イートンに電話して聞いてみることをお勧めします。