Veeam v9 – My Veeam Report 9.5.3

My Veeam Report has been updated for the release of VBR 9.5 Update 3. If you’re ready to install Update 3, you’ll want to update My Veeam Report as well.

What’s New

This minor update fixes a couple of property changes introduced with VBR 9.5 Update 3. The good news is that you can copy and paste your entire User-Variables region from your 9.5.1 report making the transition fairly simple.

Sample Report
A sample report can be found here.



Download the zip or copy and paste into a .ps1 file from here.


The next step is to configure the (many!) script options which is done in the User-Variables region. There are three variables that must be configured before running.

1) Add your VBR server name

# VBR Server (Server Name, FQDN or IP)
$vbrServer = "yourVBRserver"

2) Ensure the path to the Veeam executable is correct

# Location of Veeam executable (Veeam.Backup.Shell.exe)
$veeamExePath = "C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Shell.exe"

3) Configure Email Settings (or optionally the ‘Save HTML output to file’ section)

# Email configuration
$sendEmail = $true
$emailHost = ""
$emailPort = 25
$emailEnableSSL = $false
$emailUser = ""
$emailPass = ""
$emailFrom = ""
$emailTo = ""

From here I would familiarize yourself with all the different options the report has to offer. Everyone likes to see something different and the report can be customized to show only the data that is important to you.

I’ll note again that as there are so many items possibly returned from the script I foresee some folks setting up multiple scripts for best results. For example, one script to run a daily report on backups, another weekly report for Tape Backup Jobs and possibly another that just lists expired tapes on Fridays – it’s completely up to you, your processes and the size of your environment.

Validate Everything!

Though I have tried my best to test every possible outcome of the report, I will not be astonished if I have overlooked or fat-fingered something along the way. Please do us all a favor and validate the output against your console to ensure the data returned is correct. If you find something off, please let me know so everyone can benefit from the fix.

Thank You

Lastly, I would once again like to thank all the past and present contributors to this project. I’m not sure I would have had the motivation to start and continue this project entirely on my own and am grateful for all whom have given advice, insight, tested and/or contributed.


27 thoughts on “Veeam v9 – My Veeam Report 9.5.3

  1. Anthony Cogswell

    As always thanks for the update. Any plans on gathering information on Protection Groups and The backup Jobs using those protection groups? Not seeing my new backups jobs based on the groups in the report.

  2. Vaibhav Shah

    I am trying to user Veeam report 9.5.3. I am getting failed error for VM backup Protection Summary and VMs with No successful backups within RPO. I am not backing up all the VMs in vcenter. How can I run report only on the machine i am backing up to avoid this failed error?

    1. smasterson Post author

      You can exclude systems by datacenter, folder or name (including wildcards)

      # Exclude VMs from Missing and Successful Backups sections
      # $excludevms = @(“vm1″,”vm2″,”*_replica”)
      $excludeVMs = @(“”)
      # Exclude VMs from Missing and Successful Backups sections in the following (vCenter) folder(s)
      # $excludeFolder = @(“folder1″,”folder2″,”*_testonly”)
      $excludeFolder = @(“”)
      # Exclude VMs from Missing and Successful Backups sections in the following (vCenter) datacenter(s)
      # $excludeDC = @(“dc1″,”dc2″,”dc*”)
      $excludeDC = @(“”)

      1. Vaibhav Shah

        thanks for the prompt reply. I am backing 40 machines out of 250 vm. Also they are from different folder and single data-center. Is there better way to cover that?

      2. Vaibhav Shah

        Thanks Jonathan, I tried turn off those part by writing false but it didn’t work. Those part just not showing on the report but still the report shows as failed.

      3. smasterson Post author

        There must/should be something in the report that is coming up as failed. Could be license check, repository status, etc.
        Feel free to forward me a copy of the report and I can take a look for you – smasterson @ gmail

      4. Vaibhav Shah

        That is what i was thinking and i just ran the raw report without any modification and it came failed with only two filed 1
        1)VM backup Protection Summary
        2)VMs with No successful backups within RPO.

        Rest of the fields are green. I will fw you the report.

  3. Jonathan

    What a great project you have here. I’ve started using it about a month ago and it makes things much easier to manage and helped me find a few deficiencies.

    I just updated my script to this most recent one 9.5.3 but have not yet updated VBR to 9.5.3 and am getting this error:

    Get-Date : Cannot bind parameter ‘Date’ to the target. Exception setting “Date”: “Object reference not set to an instance of an object.”
    At D:\Reporting\Scripts\get-veeamreport-953.ps1:1267 char:23
    + If ((Get-Date $vmtask.Progress.StartTimeLocal) -ge (Get-Date $vms[$vmtas …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : WriteError: (:) [Get-Date], ParameterBindingException
    + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand

    I’d also like to recommend the option of including a list of Excluded hostnames

    1. smasterson Post author

      For VBR 9.5 Update 1 & 2 you should be using MVR 9.5.1 found in the previous post (wouldn’t let me link in comments..)
      9.5.3 has no major changes other than fixing changes introduced with Update 3.

      Unfortunately excluding via hostname doesn’t look possible as the hostname is not returned when a vCenter is used (only the Cluster).

      1. Jonathan

        To be more clear, an option to include in the report the hostnames that have been added to an exclusion list. This would come from the variables in the script, not vcenter.

  4. Mikkel Andreasen

    First time user, and very impressed. Nice work!
    I had a single issue running the script, line 1267 kept generating errors
    Get-Date $vmtask.Progress.StartTimeLocal and Get-Date $vmtask.Progress.StopTimeLocal had to be replaced with
    Get-Date $vmtask.Progress.StartTime Get-Date $vmtask.Progress.StopTime
    Now it just works πŸ™‚

    I did make a second change to make it a bit more dynamic during my testing, by including this input parameters I could change reportmode and basic e-mail from the command line.

    Param (
    [string]$vbrServer = “localhost”,
    [string]$reportMode = 24,
    [string]$emailTo = “”,
    [boolean]$sendEmail = $true,
    [boolean]$Debug = $false

    1. smasterson Post author

      It looks as though you are running MVR 9.5.3 without yet installing VBR 9.5 Update 3.
      You could either a) install Update 3 or b) revert to MVR 9.5.1 to alleviate the errors you are seeing.

  5. Tom stevens

    Any Idea how to Show only Replication Tasks and status in the Report? Running the script and not showing Replication Tasks/Status only Replica Target Details for 1 Host

  6. Dale

    Love this Script. I’ve been using it for quite some time now. I really love the html formatting in a previous version where the status was highlighted in a block instead of the text. Is there are convenient way to modify this?

    I want this:

    vs this (current version):

  7. fishy

    Dear smasterson!
    great script and thanks for sharing it with us!

    I’ve a question about the Backup Job Size,
    This is the backup size of the vm backups of each job, for example SQL Logfiles (.vlb) are not included at this size.
    Is it possible to report the vlb sizes of each job too?


    1. smasterson Post author

      You are correct that SQL logfiles are not included in the function used (Get-VBRBackup). I don’t believe there is an easy way to do this without parsing the log file for each VM.

  8. Massou JM

    thank you very much :! What a piece of art ! your script is great to learn Powershell too and so useful, Impressive :!

    This is my two cents because i was using your last script for my own need :
    What about an ESX based exclusion rules like that ?

    # (line 90 ~=) define Esx to exclude
    $excludeESX = @(“”,””)

    # (line 1250 ~=) use your smart “join regex array …. :!”
    $excludeESX_regex = (‘(?i)^(‘ + (($script:excludeESX | ForEach {[regex]::escape($_)}) -join “|”) + ‘)$’) -replace “\\\*”, “.*”

    # (line 1254 ~=) Add a new Exclusion condition to Find-VBRViEntity

    Find-VBRViEntity |
    Where-Object {$_.Type -eq “Vm” -and $_.VmFolderName -notmatch $excludefolder_regex} |
    Where-Object {$_.Name -notmatch $excludevms_regex} |
    Where-Object {$_.Path.Split(“\”)[1] -notmatch $excludedc_regex} |
    Where-Object {$_.VmHostName -notmatch $excludeESX_regex} |

    1. smasterson Post author

      At first glance it appears as though this would certainly work.
      The only add I would have is to be sure to add the additional Where-Object to both Find-VBRViEntity calls (lines 1247/1253) to ensure you are excluding both VMs and Templates (depending on configuration).

  9. BackupDude

    I’ve been stuck with a problem to include in the report usage from the License section of: nr of VMs, Number of used agents (server vs workstation). Is there a way that You could include that?

  10. Tm

    Hi Shawn,

    Many thanks for the script, works a treat and have been using it with customizations for a while now.

    One thing that isn’t working for us since Veeam 9.5.3 is that the Agent for Windows 2.1 jobs are now longer picked up/reported at all, these have been added to regular backup jobs as opposed to the older Agent jobs that populated back into B&R when a job was run.

    When running Get-VBRJob – the new jobs containing/managing the 2.1 Agent for Windows don’t even show up. Same again if running Get-VBREPJob – Possibly a Veeam thing or perhaps I’m missing the corect command?


    1. smasterson Post author

      Unfortunately I don’t have licenses for the new agents so it is hard for me to look into it. I also am unable to find cmdlets for the new protection groups.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s