42 thoughts on “Scheduling Veeam Backup Free Edition backups

  1. Hallo i have a little Problem with you script. I always get the error Message: Start-VBRZip : Cannot validate argument on parameter ‘Entity’. The argument is null. Provide a valid value for the argument, and then try running the command again.

    I took the Name of the VM that i see in the hyper-v manager under Virtual mashines an took one of these. Is this the wrong name ?

    Thanks for your help Stephan

    1. Hi Stephan – thanks for the comment…

      The script has been written with vSphere in mind but can easily be modified to support Hyper-V…

      Line 11 which reads
      $vmentity = Find-VBRViEntity -Name $VM
      could essentially be switched to support the Hyper-V entity by replacing it with
      $vmentity = Find-VBRHvEntity -Name $VM

      Easy as that – should go for you after switching…


  2. Hi!

    I’ve a problem about Update 2 and VBRZip use.
    When I try to execute the script, I receive always this error:

    Start-VBRZip : License is not installed.
    At C:VeeamZIPStartZip.ps1:24 char:5
    + Start-VBRZip -Entity $vmentity -Folder $destination -Compression $Compressio …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Start-VBRZip], CLicenseNotInstalledException
    + FullyQualifiedErrorId: Veeam.Backup.LicenseLib.CLicenseNotInstalledException,Veeam.Backup.PowerShell.Commands.

    I’ve installed Update 2 last week, but it seems to not working.
    Do you have some advice?
    Thanks in advance.

    1. Same problem here, running Backup 8 Free with Update 2:

      Start-VBRZip : License is not installed.
      At C:scriptstest.ps1:24 char:17
      + Start-VBRZip <<<< -Entity $vmentity -Folder $destination -Compression $C
      ompression -AutoDelete $Autodelete -DisableQuiesce
      + CategoryInfo : NotSpecified: (:) [Start-VBRZip], CLicenseNotIns
      + FullyQualifiedErrorId : Veeam.Backup.LicenseLib.CLicenseNotInstalledExce

          1. Ha Ha I was coming back here to say the same thing! Update 2b fixes the license issue for sure.

  3. Hmm, was there an option to install powershell components as well with Update 2 – wondering if maybe they didn’t get upgraded as it has all worked from my end…

  4. No idea. I’m using your interactive script via powershell, but when I put all the requested parameters, after a few seconds I receive this error.
    I’ve the release, so I think the Update 2 has correctly installed.

  5. Ok, found the problem. I was not using the Veeam Powershell in order to test your script. Now, using the Powershell inside Veeam menu, appears to work.

  6. Should line 12 (if ($vm -eq $null)) not be: if ($vmentity -eq $null) ???

    However the Find-VBRViEntity -Name “HyperV-VM” is not returning any entity ???

  7. Maybe I’m just a moron, I know very little about powershell. I’m trying to run this script but there’s something wrong with what I’m doing.

    My destination is a nested folder on a network share that works when I run the backups from the GUI, but is failing when it is the destination of the script.

    6/11/2015 11:09:56 AM :: Error: Access is denied.

    Cannot create folder. Folder path: [\serversharethursday].

    –tr:FC: Failed to create directory. Directory path: [\serversharethursday].

    –tr:Failed to call DoRpc. CmdName: [FcCreateDir].

    Access is denied.

    Cannot create folder. Folder path: [\serversharethursday].

    This folder already exists, and again works fine when targeted within the GUI. Any advice?

    1. I had the same problem. I’m not sure, but I do belive that it is the local service (not your user-account) who runs the zip-backup and that’s why there i no access to network-share. I solved this by setting up a share without password-requirements (in DMZ of cource).

  8. I’m running Veeam FREE edition with Update 2b ( on Windows 2012 R2 64bit and I still get the error of “Start-VBZip: Veeam Backup Free Edition does not allow VeeamZIP of multiple VMs. Specify a single VM, or install a paid product license.” Anyone know how to fix this?

    1. So apparently backing up the Virtual Center VM throws that error message, is there any way around it? I’m able to backup all other VMs without any problem.

  9. I could not get this to work. Simply running “PS C:Program FilesVeeamBackup and ReplicationBackup> .Initialize-VeeamToolkit.ps1” produces this

    Exception calling “GetAssemblyName” with “1” argument(s): “Could not load file or assembly

    ‘Veeam.Backup.PowerShell.dll’ or one of its dependencies. The system cannot find the file specified.”

    At C:Program FilesVeeamBackup and ReplicationBackupInitialize-VeeamToolkit.ps1:13 char:2

    + $arch = [reflection.assemblyname]::GetAssemblyName($currentExecutingPath).Proce …

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : FileNotFoundException

    Add-PSSnapin : No snap-ins have been registered for Windows PowerShell version 3.

    At C:Program FilesVeeamBackup and ReplicationBackupInitialize-VeeamToolkit.ps1:137 char:1

    + Add-PSSnapin VeeamPSSnapIn

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo : InvalidArgument: (VeeamPSSnapIn:String) [Add-PSSnapin], PSArgumentException

    + FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand

    Get-PSSnapIn : No Windows PowerShell snap-ins matching the pattern ‘VeeamPSSnapIn’ were found. Check the pattern and

    then try the command again.

    At C:Program FilesVeeamBackup and ReplicationBackupInitialize-VeeamToolkit.ps1:140 char:11

    + $snapIn = Get-PSSnapIn “VeeamPSSnapIn”

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo : InvalidArgument: (VeeamPSSnapIn:String) [Get-PSSnapin], PSArgumentException

    + FullyQualifiedErrorId : NoPSSnapInsFound,Microsoft.PowerShell.Commands.GetPSSnapinCommand

    update-formatdata : Cannot find path ‘C:Program FilesVeeamBackup and

    ReplicationBackupVeeam.Backup.PowerShell.format.ps1xml’ because it does not exist.

    At C:Program FilesVeeamBackup and ReplicationBackupInitialize-VeeamToolkit.ps1:142 char:1

    + update-formatdata -prependPath $xmlFilePath

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo : InvalidOperation: (Veeam.Backup.PowerShell.format.ps1xml:String) [Update-FormatData], It


    + FullyQualifiedErrorId : FormatPrependPathException,Microsoft.PowerShell.Commands.UpdateFormatDataCommand

    1. I have installed PowerShell 3.0 and Update 2b and there simply isn’t a “Veeam.Backup.PowerShell.dll” installed on my Win 2008 R2 server

    2. I think I have fixed this you need to install “VeeamBackup&Replication.,msi”

  10. Is there any way to backup all VM’s rather than specifying a specific VM ? I can create multiple scheduled jobs specifying each VM but would be nice if it automatically backed up VM’s that had been created on the host. Just about to have a look at the Veeamtoolkit.ps1 file to see what it does….

    1. (get-vm -ComputerName YOURSERVERFQDN | foreach { $_.Name }) -join “`”,`”” | Tee-Object -Variable VMNames | Out-Null

      $VMNames = “`”” + $VMNames + “`””

  11. Great Script, just have one question. I have tried to add multiple email addresses by using “job.bloggs@abc.com”,”john.doe@here.com”…. however only the first recipient is getting the mail. Am I doing something wrong?

  12. TIP: If you just want to backup ALL your machines without giving names, use this instead of $VMNAMES= “A”,”B”,”C”

    (get-vm -ComputerName YOURSERVERFQDN | foreach { $_.Name }) -join “`”,`”” | Tee-Object -Variable VMNames | Out-Null

    $VMNames = “`”” + $VMNames + “`””