I needed to check the backup ‘settings’ from a bunch of backup jobs within Veeam, and doing them manually is a waste of time.
So i made a little powershell script to do it. This is one of the first times i’m using powershell, so it probably could be optimized.
if((Get-PSSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue) -eq $null){
    Add-PSSnapin "VeeamPSSnapIn"
}
$JobInfo = @()
foreach($vbrJob in (Get-VBRJob | Sort Name)){
    foreach($Object in (Get-VBRJobObject -Job $vbrJob | Sort Name)){
       $Details = "" | Select JobName,ObjectSizeinGB,Algorithm,RetainCycles,RetainDays,CompressionLevel,ChangedBlockTracking,ExcludeSwapFile,EnableDeduplication,SourceProxyAutoDetect,EnableIntegrityChecks,SetResultsToVmNotes
       $JobSize = ([math]::Round($Object.Info.ApproxSize / 1GB))
    
       $Details.JobName = $vbrJob.Name
    
       $Details.ObjectSizeinGB = $JobSize
       $JobnameObject = Get-VBRJob | Where {$_.Name -eq $vbrJob.Name}
       $Options = $JobnameObject.GetOptions()
       # Determine what kinda job this is
       if ($Options.Options.RootNode.Algorithm -eq "Syntethic"){
          $Algorithm = "Reversed Incremental"
       }
       if ($Options.Options.RootNode.Algorithm -eq "Increment") {
          if ($Options.Options.RootNode.TransformFullToSyntethic -eq "True" -And $Options.Options.RootNode.TransformIncrementsToSyntethic -eq "True") {
             $Algorithm = "Incremental ( Synthetic full enabled, Transform previous full backup chains into rollbacks )"
          }
          if ($Options.Options.RootNode.TransformFullToSyntethic -eq "True" -And $Options.Options.RootNode.TransformIncrementsToSyntethic -eq "False") {
             $Algorithm = "Incremental ( Synthetic full enabled )"
          }
          if ($Options.Options.RootNode.TransformFullToSyntethic -eq "False" -And $Options.Options.RootNode.TransformIncrementsToSyntethic -eq "False") {
             $Algorithm = "Incremental ( Synthetic full disabled, Active full backups )"
          }
       }
       # Detect if Changed Block Tracking is enabled
       if ($Options.Options.RootNode.UseChangeTracking -eq "True" -And $Options.Options.RootNode.EnableChangeTracking -eq "True") {
          $CBT = "Enabled"
       } else { $CBT = "Disabled" }
       # Detect if the swap file is excluded
       if ($Options.Options.RootNode.ExcludeSwapFile -eq "True") {
          $swap = "Enabled"
       } else { $swap = "Disabled" }
       # Detect if inline Deduplication is enabled
       if ($Options.Options.RootNode.EnableDeduplication -eq "True") {
          $dedup = "Enabled"
       } else { $dedup = "Disabled" }
       # Detect if SourceProxyAutoDetect is Automatically Selected
       if ($Options.Options.RootNode.SourceProxyAutoDetect -eq "True") {
          $backupproxy = "Automatic selection"
       } else { $backupproxy = $Options.Options.RootNode.SourceProxyAutoDetect }
       # Detect if Integrity Checks are enabled
       if ($Options.Options.RootNode.EnableIntegrityChecks -eq "True") {
          $integrity = "Enabled"
       } else { $integrity = "Disabled" }
       # Detect if Results To Vm Notes are enabled
       if ($Options.Options.RootNode.SetResultsToVmNotes -eq "True") {
          $notes = "Enabled"
       } else { $notes = "Disabled" }
       $RetainDays	     	 = $Options.Options.RootNode.RetainDays
       $Details.Algorithm    	 = $Algorithm
       $Details.RetainCycles 	 = $Options.Options.RootNode.RetainCycles
       $Details.CompressionLevel = $Options.Options.RootNode.CompressionLevel
       $Details.RetainDays   	 = "Remove deleted VMs data from backup after $RetainDays days"
       $Details.ChangedBlockTracking = $CBT
       $Details.ExcludeSwapFile  = $swap
       $Details.EnableDeduplication = $dedup
       $Details.SourceProxyAutoDetect = $backupproxy
       $Details.EnableIntegrityChecks = $integrity
       $Details.SetResultsToVmNotes = $notes
    }
    $Details 
}
Exit
The output :
JobName : Job01 ObjectSizeinGB : 409 Algorithm : Incremental ( Synthetic full enabled ) RetainCycles : 14 RetainDays : Remove deleted VMs data from backup after 14 days CompressionLevel : 6 ChangedBlockTracking : Enabled ExcludeSwapFile : Enabled EnableDeduplication : Enabled SourceProxyAutoDetect : Automatic selection EnableIntegrityChecks : Enabled SetResultsToVmNotes : Enabled JobName : Job02 ObjectSizeinGB : 9 Algorithm : Reversed Incremental RetainCycles : 30 RetainDays : Remove deleted VMs data from backup after 30 days CompressionLevel : 6 ChangedBlockTracking : Enabled ExcludeSwapFile : Enabled EnableDeduplication : Enabled SourceProxyAutoDetect : Automatic selection EnableIntegrityChecks : Enabled SetResultsToVmNotes : Enabled
Hi there.
Thank you very much for sharing this. I am already searching for a while to find that specific information.
First I tought i can easily get this via get-vbrjob but sadly it isn not that easy 🙂
So, thanks again! Nice job.