Задайте вопросЗадайте вопрос
 

ОтвеченоPowerShell, EventLog, e-mail

  • 8 мая 2008 г. 8:22Kichin Denis Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     

    Добрый день, подскажите, как можно реализовать такой сценарий:

    С помощью

    Code Snippet

    Get-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. сорри если вопрос простейший)

Ответы

  • 8 мая 2008 г. 9:11Alb_ Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     Отвечено

    попробуй так

     

    Code Snippet

     Get-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)

     

     

  • 12 мая 2008 г. 0:35zorion Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     Отвечено

    Можно обойтись и без вложения

    либо так

     

    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-String

    Send-SmtpMail -SmtpHost exchange.company.com -From admin@company.com -To user@company.com -Subject "eventlogtwo" -Body $body

     

     

Все ответы

  • 8 мая 2008 г. 9:11Alb_ Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     Отвечено

    попробуй так

     

    Code Snippet

     Get-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)

     

     

  • 8 мая 2008 г. 9:52Kichin Denis Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     
    Спасибо )

     

  • 12 мая 2008 г. 0:35zorion Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     Отвечено

    Можно обойтись и без вложения

    либо так

     

    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-String

    Send-SmtpMail -SmtpHost exchange.company.com -From admin@company.com -To user@company.com -Subject "eventlogtwo" -Body $body