Lister tous les snapshots

Lorsqu’on utilise les snapshots, il arrive parfois d’oublier de les supprimer après les modifications sur la VM et de laisser des snapshots actifs. Le script ci-dessous permet de lister tous les snapshots de plus de 7 jours présents dans le vCenter. De plus ce script permet d’envoyer un mail avec en pièce jointe le fichier excel remplit, il est donc très facile de l’utiliser en tâche automatisée toutes les semaines par exemple.
Ce script se base sur un fichier excel modèle ci-joint (snapshot-7jrs-model).
Script :
Connect-VIServer « nom-vCenter » -User « nom-user » -Password « passwd-user »
$ExcelFile = « c:snapshot-7jrs-model.xls »
$excel = New-Object -ComObject Excel.Application
$excel.visible = $true
$excel.DisplayAlerts = $false
$Workbook = $excel.workbooks.open($ExcelFile)
$Worksheets = $Workbook.worksheets
$Sheet = $Excel.Worksheets.Item(1)
$introw =2
$info = @()
$myvms = Get-VM
$today = Get-Date
$snapshots =  Get-VM | Get-Snapshot | where {$_.Created -le ($today.addDays(-7))} #Vous pouvez modifier la valeur 7 jours
foreach ($SNAPSHOT in $snapshots){
$nomSnapshot = $SNAPSHOT.Name
$vm = $SNAPSHOT.VM.Name
$description = $SNAPSHOT.Description
$created = $SNAPSHOT.Created.DateTime
$taille = $SNAPSHOT.SizeGB
#Remplissage du tableau
$Sheet.Cells.Item($intRow, 1) = $vm
$Sheet.Cells.Item($intRow, 2) = $created
$Sheet.Cells.Item($intRow, 3) = $nomSnapshot
$Sheet.Cells.Item($intRow, 4) = $description
$Sheet.Cells.Item($intRow, 5) = $taille
$introw = $introw+1
}
$date = Get-Date -Format yyyy-MM-dd
$Workbook.SaveAs(« C:snapshot-7jrs-$date »)+ « .xls »
$Workbook.CheckCompatibility = $False
$Workbook.Close()
$excel.Quit()
####### PARTIE MAIL #########
$PJ = (« C:snapshot-7jrs-$date »)+ « .xls »
$Body = « Bonjour,
Vous trouverez en piece jointe, la liste des snapshot de plus de 7 jours.
Cordialement »
$mailto = @(« xxxx@gmail.com« )
$EmailFrom = « RAPPORT-SNAPSHOT <xxxx@gmail.com> »
$EmailSubject = « [Snapshot-Plus-7jrs] »
$SMTPSRV = « Smtpmail.xxxx.xxxx.xxxx« 
send-Mailmessage -To $mailto -From $EmailFrom -Subject $EmailSubject -SmtpServer $SMTPSRV -Body $Body -Attachments $PJ
Disconnect-VIServer -Confirm:$False

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> 


*