ページ

2020/09/01

PowershellでWSB実行:仮想マシンバックアップ(3)

具体的なスクリプト例

Hyper-V仮想マシンのバックアップ

Hyper-V上の仮想マシン(Win2016A)をWドライブにバックアップする。

wbadmin start backup -backupTarget:W: -HyperV:Win2016A


  • WBバックアップポリシー作成

$wbpolicy = New-WBPolicy

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

$target = New-WBBackupTarget -VolumePath W:

Add-WBBackupTarget -Policy $wbpolicy -Target $target```

  • 仮想マシン(Win2016A)のWBバックアップポリシーへの追加

$vm = Get-WBVirtualMachine | ? VMName -Match "Win2016A"

Add-WBVirtualMachine -Policy $wbpolicy -VirtualMachine $VM

ここで注意すべきことは、Get-VMで仮想マシンを確認できても、WSBの Get-WBVirtualMachineで確認できるとは限らないことです。経験的にチェックポイント(スナップショット)が作成されている仮想マシンを、Get-WBVirtualMachineで取得できませんでした。事前にチェックポイントを削除しておいてください。

ここまでで、WBバックアップポリシーは完成です。続いて、バックアップ実行結果確認のために直前のWSBジョブ履歴の開始日時を退避します。

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

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

  • バックアップの実行

Start-WBBackup -Policy $wbpolicy -Force

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

Start-Sleep -Seconds 10

$wbstatus = Get-WBJob -previous 1

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

WSBジョブ履歴の確認すべき項目は次のとおりです。

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

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

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

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

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

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


0 件のコメント:

コメントを投稿

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