Сценарий Powershell для поиска файла и отправки по электронной почте - PullRequest
0 голосов
/ 15 мая 2018

Я новичок в Powershell

Я создаю файл с выводом в нем, а затем ищу в этом файле определенную фразу, и, если она содержит ее, отправляется электронное письмо.Я смог создать файл и затем отфильтровать то, что мне нужно, используя sls, но я не могу понять, как отправить мне этот файл по электронной почте , если содержит конкретное слово.

Пример. Если файл содержит слово Не в сети , отправьте этот файл в электронном письме.

Это следующие команды, которые я выполнял до сих пор -

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 голосов
/ 15 мая 2018

Итак, в вашей ситуации -

  • у вас есть вывод, сгенерированный этим vmoprcmd исполняемым файлом
  • , он перенаправляется в файл
  • , который вы хотите определить,файл / вывод содержит строку "Offline"
  • , если это так, инициируйте электронное письмо

Для этого вы можете использовать командлеты Select-String и Send-MailMessage:

$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
}

Документация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...