Powershell脚本搜索文件然后发送电子邮件

时间:2018-05-15 14:48:13

标签: powershell

我是 Powershell

的新手

我正在创建一个带有输出的文件,然后在该文件中搜索特定的短语,如果它包含它,则会收到一封电子邮件。我已经能够创建该文件,然后使用sls过滤掉我需要的内容,但我似乎无法弄清楚如何通过电子邮件将该文件发送给我如果它包含特定的单词。

Ex - 如果文件中包含单词离线,则将该文件附加到电子邮件中。

这是我到目前为止运行的以下命令 -

d:
set-location -Path "program files\veritas\volmgr\bin"
.\vmoprcmd >d:\test.data\mediastatus.txt
cd \
set-location -Path "test.data"
sls offline .\mediastatus.txt

1 个答案:

答案 0 :(得分:2)

所以在你的情况下 -

  • 您拥有此vmoprcmd可执行文件
  • 生成的输出
  • 将其重定向到文件
  • 您想要检测文件/输出是否包含字符串"Offline"
  • 如果有,请触发电子邮件

要实现此目的,您可以使用Select-StringSend-MailMessage cmdlet:

$Output = 'D:\test.data\mediastatus.txt'
& 'D:\Program Files\veritas\volmgr\bin\vmoprcmd.exe' > $Output

if (Select-String -Pattern offline -Path $Output -Quiet) {
    $MailArgs = @{
        'To'          = 'mailaddress@example.com'
        'From'        = 'mymailbot@example.com'
        'Subject'     = 'Device offline!'
        'Attachments' = $Output
        'Body'        = 'Whatever you want it to be'

        'SmtpServer'  = 'my.smtp.server.com'
        'Port'        = 25
    }
    Send-MailMessage @MailArgs
}

文档: