samiam41
asked on
Email log file after script completes - Powershell
Hey Experts. I'd like to add the ability to email the log file once the script has finished running. Below is the script I'd like to add the email functionality to:
I tried adding this at the end of the script but it didn't work because of an error (Tivoli_Master_Logs\Combin ed_{0}.log value cannot be null).
Thanks experts for your help!
$ServerList = @'
"Name", "Path"
Servers
'@ | ConvertFrom-Csv
$LogFile = "\\w2k12FS01\PUBLIC\Tivoli_Master_Logs\Combined_{0}.log"
$Yesterday = (Get-Date).AddDays(-1)
$Pattern = (Get-Date).AddDays(-1).ToString('MM\/dd\/yyyy') + ' * --- SCHEDULEREC STATUS BEGIN*'
$Timestamp = $Yesterday.ToString('yyyyMMdd')
$in = $false
$ServerList | ForEach-Object {
$Server = $_
"========== $($Server.Name) ============================================================"
Try {
Switch -Wildcard (Get-Content -Path "\\$($Server.Name)\$($Server.Path.Replace(':', '$'))" -ErrorAction Stop) {
$Pattern {$in = $true}
'*SCHEDULEREC STATUS END*' {$in = $false}
default {If ($in) {$_}}
}
} Catch {
"ERROR accessing '$($Server.Path)': $($_.Exception.Message)"
}
} | Set-Content -Path $($LogFile -f $TimeStamp)
I tried adding this at the end of the script but it didn't work because of an error (Tivoli_Master_Logs\Combin
$EmailFrom = "me"
$EmailTo = "me"
$EmailSubject = "Backup results for $($yesterday)"
$SMTPServer = "smtp"
$emailattachment = $LogFile
$mailmessage = New-Object system.net.mail.mailmessage
$mailmessage.from = ($emailfrom)
$mailmessage.To.add($emailto)
$mailmessage.Subject = $emailsubject
$attachment = New-Object System.Net.Mail.Attachment($emailattachment, 'text/plain')
$mailmessage.Attachments.Add($attachment)
$mailmessage.Body = ("<br />$('*'*72)<br />" + ((Get-Content -Path $LogFile) -join '<br />') + "<br />$('*'*72)<br />")
$mailmessage.IsBodyHTML = $true
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("$SMTPAuthUsername", "$SMTPAuthPassword")
$SMTPClient.Send($mailmessage)
Thanks experts for your help!
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Script is really looking slick and very functional. Thanks for your hard-work!
ASKER