<#
.AUTEUR
JOVELIN Antoine
.SYNOPSIS
Script permettant de lister les VMs sauvegardées ou non sauvegardées durant les 24 dernières heures.
Par défaut seules les VMs non sauvegardées seront listées. Pour afficher la liste des VMs sauvegardées, supprimer le commentaire à la ligne 103.
.UTILISATION
Nécessite OBLIGATOIREMENT d'avoir ces deux modules Powershell :
- PowerCLI
- Veeam.Backup.PowerShell (disponible uniquement depuis un serveur VBR ou un poste ayant la console de management VBR)
#>
cls
$herestring = @"
***** L'INSTALLATION A ECHOUEE *****
POUR INSTALLER POWERCLI :
1- RECUPERER LE MODULE DEPUIS https://www.powershellgallery.com/packages/VMware.PowerCLI/13.0.0.20829139
2- COPIER LE CONTENU DE L'ARCHIVE DANS "C:\Users\NOM_DU_USER\Documents\WindowsPowerShell\Modules"
3- RELANCER LE SCRIPT
"@
Write-Host " Vérification des modules nécessaires " -ForegroundColor Cyan
1..3 | Sort-Object -Descending | %{Start-Sleep -Seconds 1}
$MyModules = Get-Module -ListAvailable | select name
if($MyModules.name -contains "VMware.PowerCLI"){
Write-Host "Le module PowerCLI est installé. Le script va continuer" -ForegroundColor Green
}else{
Write-Host "Le module PowerCLI n'est PAS installé. Le script ne pourra pas continuer" -ForegroundColor Yellow
do{
$reponse = Read-Host " Installer le module VMware.PowerCLI ? [oui/non] "
Switch ($reponse){
oui{
Install-Module -name vmware.powercli -Scope CurrentUser -Confirm:$false -Force
if($MyModules -notcontains "VMware.PowerCLI"){
Write-Host $herestring -ForegroundColor red
sleep 3
Write-Host " Fin du script dans quelques secondes" -ForegroundColor yellow
1..5 | Sort-Object -Descending | %{Start-Sleep -Seconds 1;Write-Host " $_ " -ForegroundColor yellow}
echo " "
exit
}
}
non{
Write-Host " Fin du script dans quelques secondes" -ForegroundColor yellow
1..5 | Sort-Object -Descending | %{Start-Sleep -Seconds 1;Write-Host " $_ " -ForegroundColor yellow}
echo " "
exit
}
}
}while(($reponse -ne "oui") -and ($reponse -ne "non"))
}
sleep 1
if($MyModules.name -contains "Veeam.Backup.PowerShell"){
Write-Host "Le module Veeam.Backup.PowerShell est installé. Le script va continuer" -ForegroundColor Green
}else{
Write-Host "
Le module Veeam.Backup.PowerShell n'est PAS installé. Le script ne pourra pas continuer.
Pour utiliser le module Veeam.Backup.PowerShell il est OBLIGATOIRE d'installer la console de management de Veeam B&R" -ForegroundColor red
echo ""
Write-Host " Fin du script dans quelques secondes" -ForegroundColor yellow
1..5 | Sort-Object -Descending | %{Start-Sleep -Seconds 1;Write-Host " $_ " -ForegroundColor yellow}
echo " "
exit
}
echo ""
$VC = Read-Host -Prompt " Entrer le nom de vCenter "
echo ""
$cred = Get-Credential
echo ""
Write-Host -ForegroundColor cyan "Connexion à vCenter. Merci de patienter..."
Connect-VIServer $VC -Credential $cred
echo ""
Write-Host " Récupération de la liste des VMs " -ForegroundColor Cyan
$esx = Get-VM | foreach{$_.Name} | Sort-Object
echo ""
Write-Host " Récupération de la liste des VMs sauvegardées par les Jobs de Veeam dans les 24 dernières heures " -ForegroundColor Cyan
$VbrRestore = Get-VBRBackup | Where-Object {$_.jobtype -eq "Backup"} | ForEach-Object {$Jobname = $_.jobname; Write-Output $_;} | Get-VBRRestorePoint | Where-Object {$_.CreationTime -gt (get-date).adddays(-1)} | Select-Object vmname |sort vmname
echo ""
Write-Host " Liste des VMs non sauvegardées " -ForegroundColor Cyan
echo ""
foreach ($vm in $esx){
if($VbrRestore -match $vm ){
Write-Host " La VM " -NoNewline ; Write-Host " $vm " -ForegroundColor Green -NoNewline ; Write-Host " est sauvegardee "
}else{
Write-Host "$vm" -ForegroundColor yellow -NoNewline ; Write-Host " n'a pas de Backup "
}
}
echo ""
Read-Host " Cliquer sur une touche pour quitter le script"
