crear snapshots de VMs en VMware server

# crea snapshots de VMs en vmware-server.
# Jorge Mestre

clear
write-host "- Este script asume que está instalado VMware Server 1.0.4" -fore yellow
write-host "y que está instalado en `"c:\Program Files\VMware\`"" -fore yellow
write-host "" -fore yellow
write-host "- También asume que este script se está instalando desde el host" -fore yellow
write-host "donde se encuentra instalado VMware server." -fore yellow
write-host "" -fore yellow
write-host "ATENCION!!!" -fore yellow
write-host "-----------" -fore yellow
write-host "" -fore yellow
write-host "este script detendra el Guest que se especifique," -fore yellow
write-host "y creará una copia en la subcarpeta donde reside," -fore yellow
write-host "con el formato AAAAMMDD_HHMMSS" -fore yellow
write-host ""
write-host "¿Desea continuar (S/N)? " -fore cyan -nonewline
$cont = read-host
if ($cont -ne "s"){exit}

$vmrun_List = & 'C:\Program Files\VMware\VMware VIX\vmrun.exe' list

if ($vmrun_List -eq 'Total running VMs: 0'){
"Ningun guest en ejecución...";exit
}

write-host "`nGuests en ejecución: " -fore darkgreen
write-host "------ -- ----------`n" -fore blue
for ($i=0;$i -lt $vmrun_List.length;$i++){
if ($i -eq 0){continue}
write-host "`t$i - $($vmrun_List[$i])`n" -fore cyan
}

write-host "`nElija el número de guest para crear el snapshot: " -fore green -nonewline
$opc = read-host
if ($opc -ge $vmrun_List.length){
"Opción erronea";exit
}

$vm = $vmrun_list[$opc]

write-host "¿apagar $vm y crear snapshot? (S/N):" -fore cyan -nonewline

$cont = read-host
if ($cont -ne "s"){exit}

write-host "apagando guest...." -fore darkGreen
$vmrun_stop = & 'C:\Program Files\VMware\VMware VIX\vmrun.exe' stop $vm
write-host "guest apagado." -fore darkGreen

$padre = (ls $vm).Directory.FullName
$padre = "$padre"

$nomDir = "{0:yyyyMMdd_HHmmss}" -f (get-date)
$nDir = "$padre"+"\"+"$nomdir"

mkdir $nDir

cp "$padre\*.vmdk" $nDir -passthru
cp "$padre\*.vmem" $nDir -passthru
cp "$padre\*.vmx" $nDir -passthru
cp "$padre\*.nvram" $nDir -passthru

write-host "`n`tsnapshot creado en $nDir`n" -fore green