16 octobre 2026

Automatiser la sauvegarde d’une VM ESXi avec PowerCLI

Automatiser la sauvegarde d’une VM ESXi avec PowerCLIvmware
Photo: panumas nikhomkhai / Pexels
🖥️ Illustration
PowerShell – Sauvegarde Veeam
PS C:\Scripts> Connect-VIServer -Server vcenter01.corp.local -Credential (Get-Credential)
Connecting to vcenter01.corp.local…
Connected to vcenter01.corp.local

PS C:\Scripts> $vmList = Get-VM -Location (Get-Datacenter -Name « DC-Prod »)
$vmList
Name PowerState NumCPU MemoryGB
—————————————————
Web01 PoweredOn 4 8
DB01 PoweredOn 8 32

PS C:\Scripts> Invoke-RestMethod -Method Post -Uri https://veeam01.corp.local:9419/api/jobs -Headers @{Authorization= »Basic YWRtaW46UEBzc3cwcmQh »} -Body ‘{« name »: »Backup_Prod »}’ -ContentType « application/json »
{« id »: »12345″, »name »: »Backup_Prod », »status »: »Running »}

PS C:\Scripts> Disconnect-VIServer -Server vcenter01.corp.local -Confirm:$false
Disconnecting from vcenter01.corp.local…
Disconnected!

Contexte

Dans un environnement VMware, la sauvegarde régulière des machines virtuelles (VM) est cruciale pour garantir la continuité d’activité. PowerCLI, l’interface en ligne de commande de VMware, permet d’automatiser les tâches d’administration, y compris le déclenchement de sauvegardes via l’API Veeam Backup & Replication.

sauvegarde vmware powerclivmware
Photo: panumas nikhomkhai / Pexels

Quand l’utiliser ?

  • Vous avez plusieurs VM à sauvegarder quotidiennement.
  • Vous souhaitez centraliser le lancement des jobs Veeam depuis un serveur d’administration.
  • Vous avez besoin d’un script réutilisable et planifiable (Task Scheduler, cron, etc.).

🟢 Étapes de mise en œuvre

  1. 🔹 Préparer l’environnement PowerCLI
    # Installation du module PowerCLI (si non présent)
    Install-Module -Name VMware.PowerCLI -Scope CurrentUser -Force
    
    # Désactiver le warning de certification SSL (optionnel, à ajuster selon votre politique)
    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
    
  2. 🔹 Se connecter au vCenter
    # Remplacez les valeurs par vos identifiants
    $vc = "vcenter01.corp.local"
    $cred = Get-Credential -Message "Credentials for $vc"
    Connect-VIServer -Server $vc -Credential $cred
    
  3. 🔹 Lister les VM à sauvegarder (exemple : toutes les VM du datacenter DC-Prod)
    # Filtrer les VM du datacenter
    $datacenter = Get-Datacenter -Name "DC-Prod"
    $vmList = Get-VM -Location $datacenter
    
  4. 🔹 Lancer le job Veeam via son API REST
    # Variables API Veeam
    $veeamServer = "veeam01.corp.local"
    $veeamUser = "admin"
    $veeamPwd = "P@ssw0rd!"
    $base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$veeamUser`:$veeamPwd"))
    
    # Déclencher le job nommé "Backup_Prod"
    $jobName = "Backup_Prod"
    $uri = "https://$veeamServer:9419/api/jobs"
    $body = @{ name = $jobName } | ConvertTo-Json
    Invoke-RestMethod -Method Post -Uri $uri -Headers @{ Authorization = "Basic $base64Auth" } -Body $body -ContentType "application/json" -SkipCertificateCheck
    
  5. 🔹 Vérifier le statut du job
    # Récupérer le status du dernier run
    $jobInfo = Invoke-RestMethod -Method Get -Uri "$uri?name=$jobName" -Headers @{ Authorization = "Basic $base64Auth" } -SkipCertificateCheck
    $lastRun = $jobInfo.data[0].lastRun
    Write-Host "Job $jobName terminé avec le statut : $($lastRun.result)"
    
  6. 🔹 Déconnexion du vCenter
    Disconnect-VIServer -Server $vc -Confirm:$false
    

⚠️ Méthode alternative

Si vous ne souhaitez pas passer par l’API REST de Veeam, vous pouvez invoquer directement le script PowerShell fourni par Veeam (Start-VBRJob -Name "Backup_Prod") depuis une session où le module Veeam.Backup.PowerShell est chargé.

⚠️ Bonnes pratiques de sécurité

  • Utilisez un compte dédié avec les droits minimums nécessaires (lecture du vCenter, déclenchement de jobs Veeam).
  • Stockez les mots de passe dans le SecureString ou dans Azure Key Vault plutôt qu’en clair.
  • Activez la validation du certificat SSL et évitez -SkipCertificateCheck en production.
  • Consignez toutes les exécutions dans un journal (Start-Transcript) pour l’audit.

✅ Conclusion

En combinant PowerCLI et l’API REST de Veeam, vous obtenez une solution souple pour automatiser les sauvegardes de vos VM ESXi. Le script peut être planifié, versionné et intégré à votre chaîne CI/CD, garantissant ainsi une protection fiable de vos workloads critiques.

Laisser un commentaire

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