Hyper-V

Hyper-V 2012 在 UPS 電池耗盡時正常關閉

  • February 6, 2022

背景:

我們在一個使用 Windows 2008 R2 的小型辦公室中在 Hyper-V 中執行幾個虛擬伺服器。我們只有 1 個物理主機(我們不打算很快改變它)。我們希望遷移到 Hyper-V Server 2012。

目前我們有一個小型 UPS,它可以讓伺服器執行大約 20 分鐘,然後向 Windows 2008 發送關閉消息。UPS 通過 USB 連接。Windows 2008 將 UPS 辨識為電池,並且還有來自伊頓的軟體用於監控電池。當 Windows 關閉時,它也會正確關閉 VM。

我們不想為了讓 UPS 關閉伺服器而產生執行完整版 Server 2012 的成本,但我們也不希望 Active Directory 和 Exchange 突然斷電。

當 UPS 沒電時,我們可以讓 Hyper-V Server 2012 優雅地關閉虛擬機嗎?

我最終採用的解決方案是創建一個在啟動時執行的 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

信用:https ://social.technet.microsoft.com/Forums/windowsserver/en-US/5cea0070-55f0-4f0e-b727-222203bf0463/hyperv-core-and-ups

至少在這些方面,Hyper-V Server 與作為“伺服器核心”安裝的 Windows Server 相同,也就是說,沒有圖形使用者界面。您的 UPS 監控工具是否在該環境中工作取決於伊頓的軟體是否可以在沒有 GUI 的環境中執行,以及您是否願意使用命令行工具配置這些東西。

我建議打電話給伊頓問問他們。

引用自:https://serverfault.com/questions/464278