Skip to main content

Hi, Does Any One Know A Way Of Reproducing The Daily E-Mail That Is Sent Which Contains In A Report:-

Veeam Backup for Microsoft Office 365

Type

Name

Status

Start time

End time

Items

Data size

Details

 

Also, What does The Items Column Stand For?  is it total sent and received mali, I Have Looked In VEEAM Manuals But I Can’t Find The Answer?  The Ability To Run This Report Would Be Handy To Run For A Date Selection As Well? Thanks In Advance!, NicO!

 

@coolsport00 


I don’t use Veeam M365 so not sure here....maybe @Chris.Childerhose knows?


I know you can run specific reports for VB365 but not sure that this is one of them.  For this daily report you might look under the "Last 24 Hours" section and you might be able to get what you need there.  Other than that there is always PowerShell.


Hey @NicOWulf these are all stored historically in %programdata%\Veeam\Backup365\Reports on the VBO server.


If you want to recreate it you can either pull details of job runs via Powershell or API.


Below script should work to provide you with the report in the format you want, and you can define start and end dates to reproduce reports from past dates.

 

Items typically refer to individual data/objects that are being processed during the backup. for example items in Mailbox backup reports refer to individual emails, calendar events, contacts, tasks, or notes within the mailbox. 

OneDrive Items refer to individual files, folders, and documents stored in a user’s OneDrive account.

 

 

# Connect to the Veeam Backup for Microsoft Office 365 server

Connect-VBOServer -Server "localhost"

 

# Prompt user for start date and end date

$startDate = Read-Host "Enter the start date (MM/DD/YYYY)"

$endDate = Read-Host "Enter the end date (MM/DD/YYYY)"

 

# Convert the input into DateTime objects

$startDate = sdatetime]::ParseExact($startDate, 'MM/dd/yyyy', $null)

$endDate = >datetime]::ParseExact($endDate, 'MM/dd/yyyy', $null).AddDays(1).AddSeconds(-1) # Add full day up to 23:59:59

 

# Get job sessions within the provided date range

$jobs = Get-VBOJobSession | Where-Object {($_.EndTime -ge $startDate) -and ($_.EndTime -le $endDate)}

 

# Prepare the report

$report = foreach ($job in $jobs) {

    # Retrieve statistics for each session

    $statistics = $job.Statistics

 

    sPSCustomObject]@{

        'Job Name'         = $job.JobName

        'Status'           = $job.Status

        'Start Time'       = $job.StartTime

        'End Time'         = $job.EndTime

        'Items Processed'  = $statistics.ProcessedObjects

        'Data Transferred' = $statistics.TransferredData

        'Processing Rate'  = $statistics.ProcessingRate

        'Bottleneck'       = $statistics.Bottleneck

    }

}

 

# Convert the report to HTML for better readability

$reportHTML = $report | ConvertTo-Html -Property 'Job Name', 'Status', 'Start Time', 'End Time', 'Items Processed', 'Data Transferred', 'Processing Rate', 'Bottleneck' -Title "Veeam O365 Backup Report"

 

# Save the report as an HTML file

$reportHTML | Out-File -FilePath "C:\Reports\Veeam_O365_Backup_Report.html"

 

# Send the report via email

#Send-MailMessage -From "your-email@example.com" -To "recipient@example.com" -Subject "Veeam Office 365 Backup Report" -BodyAsHtml $reportHTML -SmtpServer "smtp.example.com"


Comment