ページ

2020/09/01

PowershellでWSB実行:仮想マシンリストア(5)

具体的なスクリプト例

BMR(Bare Metal Recovery)リストア

通常、Windowsサーバのシステムリストアは、インストールメディアからの回復しかできないので説明は割愛します。

Hyper-V仮想マシンのリストア

WドライブにバックアップしたHyper-V仮想マシン(Win2016A)を元の場所(F:\Hyper-V)にリストアします。

wbadmin start recovery -backupTarget:W: -version:03/15/2020-01:23 -itemtype:Hyperv -items:Win2016A -recoveryTarget:F:\Hyper-V


  • バックアップ元をWドライブに設定

$target = New-WBBackupTarget -VolumePath W:

  • バックアップ元からバックアップセットを検索

$backupset = Get-WBBackupSet -BackupTarget $target -MachineName $env:ComputerName | ? Application -Match "Win2016A"

  • 最新のバックアップセットを確認

複数バックアップ世代が作られていたら、直近のものを採用します。

$bs = $backupset.count - 1

$ap = $backupset[$bs].Application | ? Identifier -match "HyperV"

$cp = $ap.Component | ? VMName -match "Win2016A"

  • 直前のWSBジョブ履歴の開始日時の退避

$previous_starttime = (Get-WBJob -Previous 1).StartTime

  • リストアの実行

Start-WBHyperVRecovery -BackupSet $backupset[$bs] -VMInBackup $cp -TargetPath F:\Hyper-V -Force

  • 実行結果(WSBジョブ履歴)の取得

Start-Sleep -Seconds 10

$wbstatus = Get-WBJob -previous 1

  • WSBジョブ履歴(実行結果)の確認

  1. StartTime(直前のジョブ以降である事)
  2. JobType('ApplicationRecovery'である事)
  3. JobState('Completed'である事)
  4. HRESULT(0である事)

if (([datetime]$wbstatus.StartTime -gt [datetime]$previous_starttime) `

-and ($wbstatus.JobType -eq "ApplicationRecovery") `

-and ($wbstatus.JobState -eq "Completed") `

-and ($wbstatus.HRESULT -eq 0) ) `

{echo "Backup Completed" } else {echo "Backup Failed"}


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。