Planificar SnapShot – PowerCli

Buenas!

Os traigo otro script bastante útil para la planificación de SnapShot en máquinas virtuales, un ejemplo… plafica en 20 vm´s un snap tal día a tal hora… pues desde que nos lo comunican se ejecuta el siguiente scritp y TRABAJO HECHO.

Necesitamos un .csv en la misma ruta del .ps1 con el nombre… ListVm.csv . Solo neceistamos una columna que se llame:

Name

esto es lo que tenemos que guardar en un .ps1 (el nombre… el que queráis)

###############

$ListVM = Import-CSV -Delimiter "," .\listvm.csv

foreach ($VMs in $ListVM)
 {

#$vmName = 'MyVM'
 $snapTime = Get-Date "09/06/17 22:30"
 $snapName = "Nombre del snap ",$VMs.name -join ''
 $snapDescription = 'Descripcion'
 $snapMemory = $false
 $snapQuiesce = $false
 #$emailAddr = 'lucd@lucd.info'

$vm = Get-VM -Name $VMs.name
 $si = get-view ServiceInstance
 $scheduledTaskManager = Get-View $si.Content.ScheduledTaskManager
 $spec = New-Object VMware.Vim.ScheduledTaskSpec
 $spec.Name = "Nombre del snap ",$VMs.name -join ''
 $spec.Description = "Descripcion"
 $spec.Enabled = $true
 #$spec.Notification = $emailAddr
 $spec.Scheduler = New-Object VMware.Vim.OnceTaskScheduler
 $spec.Scheduler.runat = $snapTime

$spec.Action = New-Object VMware.Vim.MethodAction
 $spec.Action.Name = "CreateSnapshot_Task"

@($snapName,$snapDescription,$snapMemory,$snapQuiesce) | %{
 $arg = New-Object VMware.Vim.MethodActionArgument
 $arg.Value = $_
 $spec.Action.Argument += $arg

}

$scheduledTaskManager.CreateObjectScheduledTask($vm.ExtensionData.MoRef, $spec)

}

También se puede hacer para una máquina quitando los # de $vmName

Deja un comentario