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スイッチを実行してバックアップを取得します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です