Bonjour

Complètement newb' dans le domaine, j'ai cherché sur le web un script pour sauvegarder automatiquement mes VM (5 qui tournent en permanence) la nuit sur un disque externe.
J'ai trouvé le script qui suit:

Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
# Définit le chemin de sauvegarde pour les VM ainsi que le fichier de log
[String]$BackupPath = "E:\Backups\Hyper-V"
[String]$ErrorLog   = "E:\Backups\Hyper-VBackups.log"
 
# Enregistre la date et heure du début de la procédédure
$Start = Get-Date
"$(Get-Date) - Hyper-V Backups Starting." | Out-File $ErrorLog -Append
 
# Supprime les éléments précédemment sauvegardés
Try
{
    Get-Childitem $BackupPath -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Stop
}
Catch
{
    "$(Get-Date) - Error during Get-Childitem or Remove-Item: $($_.Exception.Message)" | Out-File $ErrorLog -Append
    Return
}
 
# Récupère la liste des VM en cours d'exécution et les met en pause
Try
{
    Get-VM -ErrorAction Stop | Where-Object {$_.State –eq 'Running'} | Suspend-VM -ErrorAction Stop -Save
}
Catch
{
    "$(Get-Date) - Error during Get-VM Suspend-VM -Save: $($_.Exception.Message)" | Out-File $ErrorLog -Append
    Return
}
 
# Récupère la liste des VM en pause et les exporte dans le dossier de sauvegarde
Try
{
    Get-VM -ErrorAction Stop | Where-Object {$_.State –eq 'Paused'} | Export-VM -ErrorAction Stop -Path $BackupPath
}
Catch
{
    "$(Get-Date) - Error during Export-VM: $($_.Exception.Message)" | Out-File $ErrorLog -Append
    Return
}
 
# Récupère la liste des VM en pause et les relance
Try
{
    Get-VM -ErrorAction Stop | Where-Object {$_.State –eq 'Paused'} | Resume-VM -ErrorAction Stop
}
Catch
{   
    "$(Get-Date) - Error during Resume-VM: $($_.Exception.Message)" | Out-File $ErrorLog -Append
    Return
}
 
# Enregistre la dte et heure de fin du processus
$End = Get-Date
"$(Get-Date) - Hyper-V Backups completed in $([Math]::Round((New-TimeSpan $Start $End).TotalMinutes)) minutes." | Out-File $ErrorLog -Append

Question 1 : Qu'en pensez-vous ?

Question 2 : Si je comprends le principe, il chope toutes les VMS en fonctionnement, les met en pause , fait un export et les redémarre. Mais ayant tenter un export par l'interface d'Hyper-V, j'ai vu que ça prend beaucoup de temps et de ressources. Si tout les export se font en même temps, j'ai peur que la machine parte "en live". Ce script va t-il faire les export successivement, ou simultanément ?

Merci d'avance de votre aide

Papy !