Написание сценария powershell для мониторинга файла журнала

#powershell #powershell-2.0

#powershell #powershell-2.0

Вопрос:

Я пытаюсь написать сценарий, который будет отслеживать файл журнала на предмет изменения времени. Если файл отслеживался в последнюю минуту, отправьте мне электронное письмо, в котором говорится, что все в порядке. ЕСЛИ файл журнала старше минуты, а время между 6 утра и 9 вечера, отправьте мне электронное письмо. ЕСЛИ между 9 вечера и 6 утра перезагрузите сервер. за исключением того, что он перезагружает сервер, несмотря ни на что

     # Set perameters here
    $uncPath   = 'Unc path to log file' 
    $Server = 'ServerName'
    $min = Get-Date 06:00
    $max = Get-Date 21:00
    $now = Get-Date -Format hh:mm:ss
    
    
    # Look at the Printstream Log Files and check last modified time
    
    $files = (Get-ChildItem -Path $uncPath -Filter '*PrintstreamBroker*' -File | 
              Where-Object { $_.LastWriteTime -Gt (Get-Date).AddMinutes(-1) }).FullName
    
    #If there file is good do nothing, and send email 
    
    if ($files) {
        $Subject = 'Printstream Broker Is Running'
        $message = 'The Printstream Broker Is Running There Is Nothing To Do'
        $emailTo = '1@1.com'
    }
    
    
    
    Else ($min.TimeOfDay -lt $now -and $max.TimeOfDay -gt $now){ 
                    { 
                     $Subject = 'Printstream Broker Is Not Running'
                     $message = 'Printstream Broker Is Not Running Please Log Into $servername and start the Printstream Monarch Broker'
                     $emailTo = '1@1.com'
                    }
            }

            Else {
 
            Restart-Computer –ComputerName $server -Force

            $Subject = 'Monarch Server Rebooted'
            $message = 'The Monarch Server Has Been Rebooted'
            $emailTo = '1@1.com'
        }
      }  
   

# create a email 
$mailParams = @{
    From       = 'PrintstreamBrokerDEV@visionps.com'
    To         = $emailTo
    Subject    = $Subject
    Body       = $message
    SmtpServer = 'smtpserver'
    # any other parameters you might want to use
}
# send the email
Send-MailMessage @mailParams
  

Комментарии:

1. В чем именно проблема?

2. Независимо от того, что, если файл старый, он перезагрузит сервер. Перезагрузка сервера должна выполняться только между 9 вечера и 6 утра. Если в течение 6 утра и 9 вечера он должен отправить emal

Ответ №1:

У вас есть if else else.

Это должно быть if elseif else .