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