![резервное копирование сервера windows с помощью powershell](https://rvso.com/image/1618332/%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20windows%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20powershell.png)
Я хочу протестировать резервное копирование после завершения, убедившись, что смогу восстановить контрольный файл.
Мы все знаем, что частое резервное копирование, а затем и хранение, копирование в другой среде обеспечивает дополнительную безопасность. Для этой цели наш сервер резервного хранения, называемый Vault
, хранит несколько дополнительных копий наших ежедневных резервных копий.
Тестовый пример кода:
$Backup = '\\localhost\d$\Vault\One'
$ex =""
try{
# I have no clue how to get the servers from Get-WBBackupSet, so, resort to parsing the error
# Get-WBBackupSet error response when multiple backups are stored:
#Backups of multiple computers are in the backup storage location. The computers for which backups are present are:
#bdc iis myblue quickbooks sqlserver <redacted> .
#Please specify the computer that you want to manage backups for.
$servers=@{}
Get-WBBackupSet -BackupTarget $BackupTarget
} catch {
$m=($_ -split "`r`n")[0]
$ix=$m.IndexOf(":")
$l=$m.Substring($ix+1)
$ix=$l.IndexOf(" . ")
$Servers=$($l.Substring(0,$ix).split(" "))|? {$_ -ne ''} }
$servers | %{
$BackupSet = Get-WBBackupSet -BackupTarget $BackupTarget -MachineName $_
Write-host " $("$_".PadRight(12))$($($BackupSet.BackupTime).ToString("yyyy-MM-dd hh:mm tt ddd"))"
$BackupSet.Volume | ? { $_.MountPath -ne '' } | % {
$V=$_
Write-Host $($v.VolumeLabel.PadRight(12)) $($v.MountPath.PadRight(6)) " `
"$(($_.FreeSpace/1GB).tostring("n2").PadLeft(8))Gb $(($_.TotalSpace/1GB).ToString("n2").PadLeft(8))Gb "
Get-WBBackupVolumeBrowsePath -VolumeInBackup $_ -BackupSet $BackupSet
}
}
Я не могу Get-WBBackupVolumeBrowsePath
приступить к восстановлению известного контрольного файла, хранящегося на каждом томе:
"\\localhost\d$\Vault\One"
admin 2020-03-13 07:00 PM Fri
C: 21.38GB 59.46GB
Get-WBBackupVolumeBrowsePath : an attempt to retrieve the properties for the backup set
failed because the backup set is not in the catalog.
at "C:\Repos\PowerShell\BackupStatus.ps1":... char:13
+ Get-WBBackupVolumeBrowsePath -VolumeInBackup $_ -Backup ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WBBackupVolumeBrowsePath], Exception
+ FullyQualifiedErrorId : System.Exception,Microsoft.Windows.ServerBackup.Commands.GetWBBackupVolumeBrowsePath
Где или как ссылаться на каталог? Используя WBbackup
, я могу открыть и извлечь один файл из Vault
, но мне нужно проверить около 25 резервных копий серверов!!!
решение1
Get-BackupSet
сам по себе вернет все резервные наборы в вашем системном каталоге. Вы должны иметь возможность использовать любой из них, но, Get-WBBackupVolumeBrowsePath
кажется,требоватьрезервная копия должна находиться в системном каталоге (а не по другому пути), чтобы ее можно было монтировать в интерактивном режиме, что и происходит в фоновом режиме.
Вы можете восстановить файл напрямую, без лишних WBBackupVolumeBrowsePath
раздумий, и проверить восстановление на наличие ошибок:
Start-WBFileRecovery -BackupSet $BackupSet -FilePathToRecover "C:\Dir1" -Recursive -FileRecoveryOption CreateCopyIfExists -Force