Set objShell = CreateObject ("WScript.Shell") 'Load current date (formatted as mm-dd-yyyy) 'into variable strToday strTime = Month(Now) & "-" & Day(Now) & "-" & Year(Now) &_ "_" & hour(now) & "-" & minute(now) ' Backup target folder or UNC path strBackupDir = "E:\Backup\VS\" & strTime & "\" 'Drive containing Virtual Machines strVMdrive = "D:" 'VM folder path strVMfolder = "VS" 'available drive letter used to mount shadow copy strTempDrive = "X:" 'Prepare shadow copy commands sExCmd = "CreateVSS.cmd" Set oFileSys = CreateObject("Scripting.FileSystemObject") if oFileSys.FileExists(sExCmd) then oFileSys.DeleteFile(sExCmd) set oExCmd = oFileSys.CreateTextFile(sExCmd, CopyOverwrite) 'create backup folder Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.CreateFolder(strBackupDir) ' Create Shadow copy of VM drive oExCmd.WriteLine "vshadow.exe -script=setvar1.cmd -p " &_ strVMdrive oExCmd.WriteLine "call setvar1.cmd" oExCmd.WriteLine "vshadow.exe -el=%SHADOW_ID_1%," &_ strTempDrive oExCmd.Close Result = objShell.run(sExCmd,vbMinimized, TRUE) 'Copy the virtual machine files from the shadow copy strSource = strTempDrive & "\" & strVMfolder objFSO.CopyFolder strSource , strBackupDir, TRUE ' Delete created shadow copy instance if oFileSys.FileExists(sExCmd) then oFileSys.DeleteFile(sExCmd) set oExCmd = oFileSys.CreateTextFile(sExCmd, CopyOverwrite) oExCmd.WriteLine "Echo y | vshadow.exe -da" oExCmd.Close Result = objShell.run(sExCmd,vbMinimized, TRUE) 'Backup complete! wscript.echo("Backup complete!")