Код собирает информацию ping и traceroute и отправляет ее по электронной почте. Результат ping отображается в теле письма, но информация трассировки отформатирована неправильно. См. Приведенный ниже пример в теле письма. Информация должна передаваться из переменной в тело письма, как это сделано ниже, а не прикрепляться в виде файла журнала.
Код следующий:
$TimeSpan = New-TimeSpan -Minutes 1
$EndTime = (Get-Date).AddMinutes($TimeSpan.TotalMinutes).ToString("HH:mm")
# $log_file='c:\timee.log'
cls
do
{
write-host 'Gathering logs..wait 2 mins'
$1+=ping google.com |Select-String "Reply"| foreach $_ { $a = Get-Date;
$a.ToString() + " " + $_ } #|
Out-File -Append -Encoding UTF8 -FilePath $log_file
$2+= tracert google.com
}
until ($EndTime -eq (Get-Date -Format HH:mm))
$EmailFrom = "from@gmail.com"
$EmailTo = "to@hotmail.com"
$Subject = "Notification from yy"
$Body = $1+$2
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object
System.Net.NetworkCredential("from@gmail.com",
"passwd");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
#Clear-Variable -name '1'
Write-Host "All done" -ForegroundColor Green