Mail report con Veeam Endpont Free

Veeam Endpoint Backup Freee (VEB) è ora GA (ovvero non è più beta) e può essere utilizzato sia sui client (minimo Windows 7 SP1) sia sui server (minimo Windows Server 2008 R2), virtuali o fisici.

L’amministratore di sistema che decide di installare questo programma in produzione ha il vantaggio di non incidere sul budget degli acquisti del software, ma ha il problema che il VEB non supporta (ancora? in questa versione?) una consolle centralizzata di amministrazione e reportistica.

VEB logga sul log degli eventi di sistema, quindi è possibile analizzare il log e inviare un report via mail all’amministratore di sistema.

PowerShell ha tutti gli strumenti per compiere questa missione: Get-EventLog per recuperare il contenuto del log degli eventi e Send-MailMessage per inviare una mail attraverso un server SMTP (nessuna API di Outlook necessaria!).

Sul forum di Veeam Michael ha messo insieme questi strumenti e ha creato uno script che notifica un destinatario SMTP in merito all’esito dell’ultima azione di VEB.

Qui di seguito lo script di Michael modificato per creare un messaggio il cui oggetto rispecchia lo stile della reportistica standard di Veeam Backup & Replication e include il nome dell’host nell’oggetto.

###########################################################
# Edit this part:
$youremailserver = "YourServerName"
$sender = "YourSenderAddress"
$recipient = "YourRecipient"
###########################################################

# Put most info into the body of the email:
$TimeGenerated = get-eventlog "Veeam Endpoint Backup" -newest 1 -entrytype Information, Warning, Error -source "Veeam Endpoint Backup" | Format-List -property TimeGenerated | out-string
$Source = get-eventlog "Veeam Endpoint Backup" -newest 1 -entrytype Information, Warning, Error -source "Veeam Endpoint Backup" | Format-List -property Source | out-string
$EntryType = get-eventlog "Veeam Endpoint Backup" -newest 1 -entrytype Information, Warning, Error -source "Veeam Endpoint Backup" | Format-List -property EntryType | out-string
$Message = get-eventlog "Veeam Endpoint Backup" -newest 1 -entrytype Information, Warning, Error -source "Veeam Endpoint Backup" | Format-List -property Message | out-string
$InstanceID = get-eventlog "Veeam Endpoint Backup" -newest 1 -entrytype Information, Warning, Error -source "Veeam Endpoint Backup" | Format-List -property InstanceID| out-string
$Body = " $TimeGenerated Instance-ID: $InstanceID $Message "


# Determine the subject according to the result of the backup:
$hostname = hostname
if ($Message.contains("Success")) {
 $subject = "[Success] Endpoint Backup $hostname"
} elseif ($InstanceID.contains("110")) {
 $subject = "[Started] Endpoint Backup $hostname"
} else { 
 $subject = "[Failed] Endpoint Backup $hostname failed"
}


# Send the email using the powershell object (replace with e.g. blat.exe for older powershell-Versions)
if ($InstanceID.contains("110") -Or $InstanceID.contains("190")) {
 Send-MailMessage -To $recipient -Subject $subject -From $sender -Body $body -SmtpServer $Youremailserver 
} else {
 write-host "I don't want messages on 10010 and 10050 Restorepoint-creation or -remove Emails, skip those"
}

write-host "Script finished with -$instanceID- as the last event-ID"

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Spazio per un commento