Jason left a comment on a previous post about wanting to see the script I am using to email NTBackup log files. Recently I converted the script to powershell from vbs. Here is the old file.
#**************************************************
# Script Name: Ntbackup_E-Mail_Alert
# Version: 1.0
# Author: Bill Huber
#Last Updated: 19.Nov.2009
#
# Purpose: Concatenates two or more log files into the body of an email message. I schedule
# this script to run at a time the backup job should be finished and to send me
# the latest NTBackup log files as an email with a somewhat informative subject field.
#
# Legal: Public Domain. Modify and redistribute freely. No rights reserved.
# SCRIPT PROVIDED "AS IS" WITHOUT WARRANTIES OR GUARANTEES OF ANY KIND.
# USE AT YOUR OWN RISK. NO TECHNICAL SUPPORT PROVIDED.
#**************************************************
# Customize the following variables for your SMTP server, email from address,
# email address the message is going to, the minimum log size, and the log path.
$SmtpServer = "mySBServer"
$From = "mySBServer Administrator <administrator @myCompany.com>"
$To = "billhuber@myCompany.com"
$intLogSize = 1000 #If the log file is less than this size, the backup probably failed
#The following variable point to the log file location
$logpath = "C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\*.log"
# End of Customization
$SmtpClient = new-object system.net.mail.smtpClient
$SmtpClient.host = $SmtpServer
#Get the filenames and other stuff for the last two log files
#We are going to concatenate the last two log files into the body of the email message
$a = get-childitem $logpath | sort-object lastwritetime | select-object -last 2
#Get the last write time for the last report for the subject line
$b = $a | sort-object lastwritetime -descending | select-Object -first 1
$c = $b.LastWriteTime
$d = $b.length
$Title = "SUCCESS - Full Backup at $c"
if ($d -lt $intLogSize){
$Title = "ERROR - Full Backup Failed at $c"
}
$Body = ""
foreach ($line in Get-Content $a)
{
$Body += "$line `n"
}
$SmtpClient.Send($from,$to,$title,$Body)