In de digitale wereld van vandaag is het beschermen van je data belangrijker dan ooit. Een effectieve manier om dataverlies te voorkomen is door dagelijks een offline back-up te maken. Dit betekent dat je data wordt opgeslagen op een externe schijf en deze loskoppelt zodra de back-up is voltooid. Door de back-up offline te houden, verminder je het risico op verlies door hardwarefouten, cyberaanvallen of per ongeluk verwijderen.

Het helper script hieronder hoort bij de video Create an Automated Offline Backup op YouTube. Het script zorgt voor de automatische start van de backup als een externe drive wordt aangeslote.

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE VolumeName = 'BackupDrive'")

If colDisks.Count > 0 Then
    ' Assign the driveLetter variable
    For Each objDisk In colDisks
        driveLetter = objDisk.DeviceID
        Exit For
    Next

    ' Ask the user if they want to make a backup
    Dim answer
    answer = MsgBox("Do you want to make a backup?", vbYesNo + vbQuestion + vbSystemModal, "Offline Backup")

    ' Check the user's response
    If answer = vbYes Then
        ' Start FreeFileSync batch file
        ffsBatchFile = "E:\Scripts\offline-backup.ffs_batch"
        Set fso = CreateObject("Scripting.FileSystemObject")

        If fso.FileExists(ffsBatchFile) Then
            Set objShell = CreateObject("Wscript.Shell")
            objShell.Run Chr(34) & ffsBatchFile & Chr(34), 1, True
            
            ' Safely remove the USB drive
            On Error Resume Next
            Set ejectShell = CreateObject("Shell.Application")
            ejectShell.NameSpace(17).ParseName(driveLetter).InvokeVerb("Eject")
            
            If Err.Number = 0 Then
                MsgBox "Backup created," & vbnewline & "you can safely remove drive " & driveLetter, vbInformation + vbSystemModal, "Backup ready"
            Else
                MsgBox "Backup completed, but secure disk removal failed. Try manually.", vbExclamation, "Disk removal error"
                Err.Clear
            End If
            On Error GoTo 0
        Else
            MsgBox "FreeFileSync batch file not found: " & ffsBatchFile, vbSystemModal
        End If
    Else
        ' Open Windows Explorer to show the drive contents
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "explorer.exe " & driveLetter, 1, False
    End If
Else
    MsgBox "No drive found with the name 'BackupDrive'.", vbExclamation + vbSystemModal, "Error locating drive"
End If