Скрипт Powershell для чтения выходных данных и, если число велико, отправьте электронное письмо - PullRequest
0 голосов
/ 18 мая 2018

У меня есть текущий скрипт, который читает файл со словом Queued: и числом, за которым следует много пробелов.Если число больше 100, оно отправит мне письмо

$Output = 'D:\alec.data\QueuedJobss.txt'
d:
set-location -Path 'D:\program files\veritas\netbackup\bin\admincmd'
.\bpdbjobs -summary -L > $Output

$Queued = (Select-String -Pattern "Queued:\s+(\d+)" -Path $Output).Matches.Groups[1].Value

if ($Queued -gt 100 ) {
  $MailArgs = @{
        'To'          = 'alb2112@test.com'
        'From'        = 'netbackup@test.com'
        'Subject'     = 'Over 100 Queued Jobs!'
        'Attachments' = $Output
        'Body'        = 'Check Environment'

        'SmtpServer' = 'smtp.test.com'
       }
     Send-MailMessage @MailArgs
  }

Я не очень знаком с использованием этих выражений cmds, чтобы помочь им понять пробелы.Если есть другие решения этой проблемы без использования выражений, пожалуйста, дайте мне знать.Выходные данные, которые он читает, выглядят так:

Summary of jobs on ustest01
Queued:                                0
Waiting-to-Retry:                        0
Active:                          43
Successful:                   25391
Partially Successful:           113
Failed:                         184
Incomplete:                       0
Suspended:                        0
Total:                        25731

Получает следующую ошибку, утверждая, что не может индексироваться в нулевой массив.Вроде бы проблема с выражением -

    Cannot index into a null array.
At line:6 char:88
+ [int]$Queued = (Select-String -Pattern "Queued:\s+(\d+)" -Path $Output).Matches.Groups[ <<<< 1].Value
    + CategoryInfo          : InvalidOperation: (1:Int32) [], RuntimeException
    + FullyQualifiedErrorId : NullArray
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...