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
