-
Pandora e Hyper-V
Hola, he instalado una maquina virtual en Hyper-V a partir del CD de instalacion basado en SuSE, y la verdad el producto me ha dejado maravillado.
Actualmente estoy monitorizando varios servidores Hyper-V tanto 2.0 como 3.0.
Entre dos servidores Windows 2012 estoy monitorizando la replicacion de diferentes maquinas virtuales con el siguiente script:‘ WMIEstatHyperVReplica.vbs
‘ Check health of Hyper-V virtual machines with replica enabled.Option Explicit
On Error Resume Next‘ Variables
Dim strComputer, objWMIService, objItem, colItems, argc, argv, i‘ Parse command line parameters
‘argc = Wscript.Arguments.Count
‘Set argv = CreateObject(“Scripting.Dictionary”)
‘For i = 0 To argc – 1
‘Â Â argv.Add Wscript.Arguments(i), i
‘NextstrComputer = “.”
Set objWMIService = GetObject(“winmgmts:\” & strComputer & “rootvirtualizationv2”)
Set colItems = objWMIService.ExecQuery( “SELECT * FROM Msvm_ComputerSystem”,,48)
For Each objItem in colItems
If objItem.ReplicationMode = 1 Then
Wscript.StdOut.WriteLine “” ”
Wscript.StdOut.WriteLine ” ”
Wscript.StdOut.WriteLine ” ”
Wscript.StdOut.WriteLine ”  ”
Wscript.StdOut.WriteLine “Â Â Â Â Wscript.StdOut.flush
End If
NextEstableciendo los min/max del Warning/Critical segun el valor de objItem.ReplicationHealth podemos disparar las alertas cuando una maquina deja de replicarse.
El resto de las maquinas virtuales que no se estan replicando, las monitorizo para saber si estan encendidas o apagadas con el siguiente script:
‘ WMIEstatHyperVM.vbs
‘ Check if Hyper-V virtual machines is running.Option Explicit
On Error Resume Next‘ Variables
Dim strComputer, objWMIService, objItem, colItems, argc, argv, istrComputer = “.”
Set objWMIService = GetObject(“winmgmts:\” & strComputer & “rootvirtualizationv2”)
Set colItems = objWMIService.ExecQuery( “SELECT * FROM Msvm_ComputerSystem”,,48)
For Each objItem in colItems
If objItem.ReplicationMode = 0 Then
Wscript.StdOut.WriteLine “”
Wscript.StdOut.WriteLine ” ”
Wscript.StdOut.WriteLine ” ”
Wscript.StdOut.WriteLine ”  ”‘Wscript.StdOut.WriteLine ” Â
”
‘If objItem.EnabledState = 2 Then
‘ Wscript.StdOut.WriteLine ”  ”
‘Else If objItem.EnabledState = 3 Then
‘ Wscript.StdOut.WriteLine ”  ”
‘Else
‘ Wscript.StdOut.WriteLine ”  ”
‘End ifWscript.StdOut.WriteLine “”
    Wscript.StdOut.flush
End If
NextEl asunto es que no encuentro la forma de pasar como dato un texto, en vez de un valor, ya que en la documentacion no hay informacion al respecto, pues me gustaria saber de manera legible (como aparece en la parte del script comentada) el estado de cada maquina.
Alguna idea?
Gracias