Отправка последних пяти сообщений eventlog system по почте.
Можно делать вложением файла, а можно и сразу в тело сообщения.
Я опишу в тело.
Способ первый (приходит практически мгновенно).
$body = Get-EventLog system -Newest 5 | Format-List |
Out-String
[Reflection.Assembly]::LoadWithPartialName(«System.Web»)
$smtpServer = «exchange»
$msg = New-Object system.web.mail.mailmessage
$msg.fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 2
$msg.fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"] = $smtpServer
$msg.fields["http://schemas.microsoft.com/cdo/configuration/smtpserverpor"] = 25
$msg.to = «user@company.com»
$msg.from = «admin@company.com»
$msg.subject = «eventlog»
$msg.body = $body
[System.Web.Mail.SmtpMail]::smtpserver = $smtpServer
[System.Web.Mail.SmtpMail]::send($msg)
Способ второй (приходит с задержкой, если кто объяснит почему, буду премного благодарен).
Тут используется библиотека PowerShellCX
$body = Get-EventLog system -Newest 5 | Format-List | Out-String
Send-SmtpMail -SmtpHost exchange.company.com -From admin@company.com -To user@company.com -Subject «eventlog» -Body $body
