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

Previous post Lister les VMs en double
Next post Lister les informations des clusters de datastore

One thought on “Lister tous les snapshots”

Leave a Reply

Your email address will not be published. Required fields are marked *

*