Command line backup of running Hyper-V images using Volume Shadow Copies (VSS) and Diskshadow.exe

10,681

Below are sample scripts used to backup Hyper-V using VSS to create a snapshot. Guest operating systems that do not support VSS will be put into a saved state during the snapshot period.

This sample backs up images located on the E:\VS directory to a local directory at F:\VS Backups. These locations will need to be adjusted to fit your needs. For each source drive, an additional volume will need to be added to the VSS snapshot.

Documentation on the diskshadow.exe command is available on Technet.

Copy each of these three files into a directory and run HyperVBackup.cmd.

HyperVBackup.cmd:

REM Use the diskshadow command to support "live" Hyper-V backup
REM   though VSS

diskshadow /s diskshadow_script.txt > HyperVBackup_LOG.txt


REM Remove CAB files which are generated to support the exporting
REM   of disk shadow copies (not required here)

del *.cab /Q

diskshadow_script.txt:

# Remove any existing shadow copies from crashed or errored scripts
# WARNING: this will conflict with other backup software if running
# at the same time.
delete shadows all

# Use a persistent context so we can "map" a drive
set context persistent

# Log everything
set verbose on


# ***TODO*** Change this drive letter to match the location of your
# VHD files
add volume E: alias HyperV1

# Add additional volumes if needed
#add add volume H: alias HyperV2

# Create the shadow copy
create

# Expose each shadowed volume as a drive
# ***TODO*** Make sure the exposed drive letter is available and used
# in the backup script
expose %HyperV1% S:

# Expose additional volumes as needed
#expose %HyperV2% T:

# Execute the backup script (robocopy)
exec HyperVBAckup_exec.cmd

# clean up the shadow copy images
delete shadows all

HyperVBackup_exec.cmd:

REM This is the script to perform the actual copy of the files

REM Use robocopy with the source set to the expose shadow drives
REM The drives are read-only, so don't try to reset the archive bit
REM **TODO** Set the destination location for the backups

robocopy S:\VS "F:\VS Backup" /MIR /NP /XF *.ISO /R:2 /W:5


REM Dummy command to clear the robocopy errorlevel

verify >nul
Share:
10,681

Related videos on Youtube

Doug Luxem
Author by

Doug Luxem

Updated on September 17, 2022

Comments

  • Doug Luxem
    Doug Luxem over 1 year

    I need to backup running Hyper-V virtual machines with minimal downtime via a command prompt. Backups should be stored on another local disk or remote share.

  • Brain2000
    Brain2000 over 9 years
    Do you only need to really copy the VHD and AVHD files?