Windows PEでバックアップ・リストア(6)
ではBackup FFUボタンを押したときの処理を記述します。

# Backup
$BackupBtn.Add_Click({
$choose = Select-Drive
if ($choose) {
if ($choose -is [array]) { $choose = $choose[-1] }
$chooseDrv=$choose
#$PathBox.Text = Join-Path $folder "backup.ffu"
Log "Selected Drive: $chooseDrv"
}
$path = $PathBox.Text
if (-not $path) { Log "No path specified."; return }
$folder = Split-Path $path -Parent
if (-not (Test-Path $folder)) {
Log "Folder does not exist: $folder"
return
}
Log "Starting backup..."
#$Progress.Value = 10
$args = "/capture-ffu /imagefile:`"$path`" /capturedrive:\\.\PhysicalDrive$chooseDrv /name:`"FullDisk`""
Log $args
Start-Process dism -ArgumentList $args -Wait -NoNewWindow
$Progress.Value = 100
Log "Backup completed."
})
前に定義した関数Select-Driveでバックアップすべきドライブを選択させ、その結果を$chooseに代入します。その後、path: 欄に入っているパスを取得し、そこにバックアップファイルを保存するように$path変数に代入しています。
それで、dismコマンドのcapture-ffuスイッチを実行してバックアップを取得します。

