1. Резервное копирование.

1.1. Устанавливаем компоненты встроенного Windows Server Backup:

PS c:\> Install-WindowsFeature Windows-Server-Backup -IncludeManagementTools

1.2. Создаём бекап машин TestVM01 и TestVM02 на сетевом хранилище \\192.168.1.100\VMBackup:

PS c:\> wbadmin start backup -backuptarget:\\192.168.1.100\VMbackup: -hyperv:"TestVM01,TestVM02" -allowDeleteOldBackups -quiet

1.3. Мой скрипт для планировщика задач wbadmin-backup.ps1:

#Constant variables
$Date = Get-Date -format yyyy.MM.dd
$BackupFolder = "\\192.168.0.2\data\"

#Set Paths
$BackupPath =  $BackupFolder + $Date
$LogPath = $BackupPath + "\BackupLogs\"

#Create backup and logs folders
New-Item -ItemType Directory -Force -Path $BackupPath
New-Item -ItemType Directory -Force -Path $LogPath

#Get VMs list
$VMList = $null
$VMs = Get-VM | Select-Object VMId
foreach ($VM in $VMs) {
    $VMList = $VMList + '"' + $VM.VMId + '"' +","
}
$VMList =  $VMList.Substring(0,$VMList.Length - 1)

#Start backup
$result = wbadmin start backup -backupTarget:$BackupPath -hyperv:"$VMList,Host Component" -Quiet

#Move logs
Move-Item -Path "c:\Windows\Logs\WindowsServerBackup\Backup*" -Destination ($LogPath)

Скрипт бекапит все ВМ на хосте и переносить к ним логи из папки c:\Windows\Logs\WindowsServerBackup\ .

2. Восстановление из копии.

2.1. Получаем список версий бекапов:

PS c:\> wbadmin get versions

wbadmin 1.0 - Backup command-line tool
(C) Copyright Microsoft Corporation. All rights reserved.

Backup time: 11/24/2021 12:08 PM
Backup target: Fixed Disk labeled (C:)
Version identifier: 11/24/2021-20:08
Can recover: Volume(s), File(s), Application(s), Virtual Machine(s)
Snapshot ID: {2d6516d5-9743-452b-a63a-32d329f6acc6}

Копируем отсюда Version identifier: 11/24/2021-20:08 . Он нам понадобиться для следующей команды.

2.2. Восстанавливаем резервную копию ВМ из бекапа:

PS c:\> wbadmin start recovery -itemtype:hyperv -items:TestVM01 -version:11/24/2021-20:08

В случае если версия бекапа не зарегистрирована на сервере, то есть команда wbadmin get version не показывает её, то ко всем командам выше добавляем опцию: -backupTarget:path , где path — путь до папки где лежит бекап нужной версии.

3. Удаление резервных копий.

3.1. В случае если мы хотим удалить все бекапы то набираем команду:

PS c:\> wbadmin delete backup -keepVersions:0

3.2. В случае если мы хотим удалить определенную версию, то:

3.2.1. Получаем список версий бекапов:

PS c:\> wbadmin get versions

wbadmin 1.0 - Backup command-line tool
(C) Copyright Microsoft Corporation. All rights reserved.

Backup time: 11/24/2021 12:08 PM
Backup target: Fixed Disk labeled (C:)
Version identifier: 11/24/2021-20:08
Can recover: Volume(s), File(s), Application(s), Virtual Machine(s)
Snapshot ID: {2d6516d5-9743-452b-a63a-32d329f6acc6}

Копируем отсюда Version identifier: 11/24/2021-20:08 . Он нам понадобиться для следующей команды.

3.2.2. Удаляем резервную копию определенной версии:

PS c:\> wbadmin delete backup -version:11/24/2021-20:08