Author Posts

June 2, 2016 at 7:26 pm

Hi,

I'm trying to send and e-mail containing some variables values and text on it... That's what I was trying:


$LogVerification = Get-EventLog -LogName System | Where {($_.EventID -eq 55) -and ($_.Message -like "*corrupt*") -and ($_.TimeGenerated -gt (Get-Date).AddDays(-1))} | select TimeGenerated,EntryType,Message | ft -Wrap -AutoSize
If ($LogVerification) {
$emailFrom = "admin@organization.com.br"
$emailTo = "vandrey@organization.com.br"
$subject = "Events 55 found on SRV-AD"
$body = "There were NTFS error records on event viewer of the server.`rPlease check those records.`r$LogVerification"
$smtpServer = "192.168.0.20"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
}
else {
Write-Warning "No event found!"
}

But it had a lot of "microsoft.powershell.commands.internal.format.formatstartdata" type of information...
Then I tried using this:


$body = Format-List -InputObject $LogVerification | Out-String

It shows the correct value, but I can't add text to send a message with it?

June 2, 2016 at 8:25 pm

The issue is with the the $LogVerification variable. As shown in your code, it is an array. Convert it to a string and you will be good to go.

,Format-Table -Wrap -AutoSize | Out-String

June 3, 2016 at 12:14 pm

Wes Stahler,

Worked! 😀
Thanks a lot for the fast reply!