pcampos blogs

Posteando mis ideas para no olvidarlas

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 root\virtualization -class Msvm_VirtualSystemManagementService
$SourceVm = Get-WmiObject -Namespace root\virtualization -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

Posted: 29/10/2009 8:23 por Pablo | con no comments
Archivado en: ,,
Comparte este post: