PowerShell, EventLog, e-mail
Добрый день, подскажите, как можно реализовать такой сценарий:
С помощью
Code SnippetGet-EventLog system -newest 5 | Format-List
я получаю то, что хочу. Вопрос в том, как можно всю эту информацию
а. либо записать в переменную в таком же виде, как она выводится командой выше. Позже эту переменную отправить
Code Snippet$SmtpClient = new-object system.net.mail.smtpClient
$SmtpServer = "exchange"
$SmtpClient.host =
$SmtpServer
$From = "Server1 "
$To = "admin@server.ru"
$Title = "EventLog"
$Body = Переменная
$SmtpClient.Send($from,$to,$title,$Body)б.либо записать в файл и отправить его таким же образом (как изменить скрипт, чтоб вложение отправить?)
Спасибо,
p.s. сорри если вопрос простейший)
Ответы
попробуй так
Code SnippetGet-EventLog system -newest 5 | Format-List | Out-file -FilePath "c:\ps\123.txt"
$Attach = new-object System.Net.Mail.Attachment("C:\ps\123.txt")
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add("admin@server.ru")
$Msg.from="server@server.ru"
$Msg.Subject="Subject"
$Msg.Body="This is body of E-Mail"
$SMTPClient.Host="server.ru"
$SMTPClient.Send($Msg)
Можно обойтись и без вложения
либо так
Code Snippet$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 так
Code Snippet$body
= Get-EventLog system -Newest 5 | Format-List | Out-StringSend-SmtpMail
-SmtpHost exchange.company.com -From admin@company.com -To user@company.com -Subject "eventlogtwo" -Body $body
Все ответы
попробуй так
Code SnippetGet-EventLog system -newest 5 | Format-List | Out-file -FilePath "c:\ps\123.txt"
$Attach = new-object System.Net.Mail.Attachment("C:\ps\123.txt")
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add("admin@server.ru")
$Msg.from="server@server.ru"
$Msg.Subject="Subject"
$Msg.Body="This is body of E-Mail"
$SMTPClient.Host="server.ru"
$SMTPClient.Send($Msg)
- Спасибо )
Можно обойтись и без вложения
либо так
Code Snippet$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 так
Code Snippet$body
= Get-EventLog system -Newest 5 | Format-List | Out-StringSend-SmtpMail
-SmtpHost exchange.company.com -From admin@company.com -To user@company.com -Subject "eventlogtwo" -Body $body

