Я пытаюсь настроить сценарий для запуска резервного копирования моих виртуальных машин только с помощью WBADMIN, у меня так же быстро, как и возможность резервного копирования всех виртуальных машин с помощью нового переключателя -HyperV, однако я также хочу сделать резервную копию HyperV Хост-компонент. Есть ли у кого-нибудь опыт в этом или может указать мне какую-то документацию (Microsoft игнорирует этот новый переключатель -HyperV)
Это мой сценарий PowerShell, если вам интересно:
#Constant Variables
$Day = Get-Date
$Day = $Day.DayOfWeek
$Date = Get-Date -format hhmmddMMyyyy
$Server = hostname
#Set Paths
$BackupPath = "\\backup\Backups\" + $Server + "\" +$Day
$LogPath = "\\backup\Backups\" + $Server + "\Logs\" + $Date +".txt"
# SELECT Virtual Machines
$VMList = $null
$VMs = Get-VM | Select-Object VMId
for ($i = 0 ; $i -lt $VMs.length ; $i++) {
$VMList = $VMList + '"' + $VMs[$i].VMId + '"' +","
}
$VMList = $VMList.Substring(0,$VMList.Length - 1)
#Run Backup
WBADMIN START BACKUP -backupTarget:$BackupPath -hyperv:$VMList -Quiet
Итак, я наконец понял, что вам нужно отказаться от WBADMIN и вместо этого начать использовать WBbackup CMDLETS в PowerShell, вот как вы можете это сделать.
#Constant Variables
$Day = Get-Date
#Use this for Backups in Evening
$Day = ($Day.AddDays(1)).DayOfWeek
#Use this for Backups in the Morning
#$Day = $Day.DayOfWeek
$Date = Get-Date -format hhmmddMMyyyy
$Server = hostname
$Target = '\\backup\backups\'+$Server+'\'+$Day
$VirtualMachines = Get-WBVirtualMachine
$DailyFullWB = New-WBPolicy
$BackupTarget = New-WBBackupTarget -NetworkPath $Target
Set-WBPolicy -Policy $DailyFullWB
Add-WBBackupTarget -Policy $DailyFullWB -Target $BackupTarget -Force
Add-WBVirtualMachine -Policy $DailyFullWB -VirtualMachine $VirtualMachines
Start-WBBackup -Policy $DailyFullWB -AllowDeleteOldBackups -Force
На самом деле в решение слишком легко поверить, и да, оно нигде не задокументировано. На самом деле вам «просто» нужно включить строку «Host Component» в ваш VMlist (параметр --hyperv
).
Просто помните, что он включает пробел, и поэтому вам нужно заключить строку в кавычки.
Например. как это:
wbadmin start backup -backupTarget:$BackupPath -hyperv:"$VMList,Host Component" -quiet
По крайней мере, с Windows Server 2016 это сработало.