Exportar Maquinas Virtuales con PowerShell +WMI

Hola a todos, les dejo este scripts que les puede servir para automatizar el respaldo de sus maquinas virtuales con hyper-v, solamente queda meterlo en el programador de tareas y lanzarlo las veces que quieran.
Recuerden que para exportar una maquina esta debe estar apagada o en estado guardado, asiq mientras se realiza la exportación la maquina queda sin conectividad
#Selecciono el hyper-v de Origen puede ser hyper-v en modo core o GUI
$HyperVHostOrigen=“hyperv-01”
#Nombre de la maquina virtual a respaldar
$MasterVM=“2008”
#Carpeta de destino del respaldo
$fecha = get-date
$dirMaquina = “D:Backup” + “Backup_” + $fecha.year + “_” + $fecha.month + “_” + $fecha.day 

$VM_Service = get-wmiobject -computer $HyperVHostOrigen -namespace rootvirtualization -class Msvm_VirtualSystemManagementService
$SourceVm = Get-WmiObject -Namespace rootvirtualization -Query “Select * From Msvm_ComputerSystem Where ElementName=’$MasterVM'” -ComputerName $HyperVHostOrigen
#Nos aseguramos que la maquina quede en estado Guardado
$SourceVm.RequestStateChange(32769)
#Le damos unos 15 segundos para que se pueda gurdar la maquina 
sleep(15)
#Exportamos la maquina virtual
$Status = $VM_Service.ExportVirtualSystem($SourceVm.__PATH, $True, $dirMaquina) 

#Generamos un par de validaciones para ver cuando se termine el trabajo
If ($status.ReturnValue -eq 4096)
{
   
$Job = [WMI]$Status.Job
   
$JobStatus = $Job.JobState
   
while ($JobStatus -ne 7)
   
{
       
sleep(1)
       
$Job = [WMI]$Status.Job
       
$JobStatus = $Job.JobState
       
echo $job.PercentComplete
   
}
}
#Iniciamos la amquina virtual
$SourceVm.RequestStateChange(2)

 

image

PD: Los valores de los RequestStateChange los saque del sitio de MSDN http://msdn.microsoft.com/en-us/library/cc723874%28VS.85%29.aspx

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *