2015-09-04 5 views
3
$serversoffline = @() 
function checkServerByName { 
    $serverlist = Get-Content $SERVERLIST 
    $processlist = Get-Content $PROCESSMONITOR 
    $results = @() 
    $processnotrunning = @() 

    foreach ($server in $serverlist) { 
     if((Test-Connection -Cn $server -BufferSize 16 -Count 1 -ea 0 -quiet)) { 
      Write-Host "Server Online" 
      Write-Host "Checking For Process" 
      foreach($process in $processlist) { 
       checkProcessByName $server $process 
      } 
     } else { 
      Write-Host "Server Offline" 
      $serversoffline += $server 
     } 
    } 
    sendEmailServersOffline 
} 

function sendEmailServersOffline { 
    $message = $message + "The following servers are OFFLINE as of $((get-date).DateTime)." + "<br><br>" 
    foreach($server in $serversoffline) 
    { 
     $message += $server + "<br>" 
    } 
    Send-MailMessage -To $to -Subject $subject -BodyAsHtml $message -From $from -Credential $cred -SmtpServer $emailserver -Debug 
} 

checkServerByName 

Приведенный выше код не работает. Он объединяет все серверы без каких-либо пробелов или строк.как разобрать массив в PowerShell

+1

Как вы печатаете/выводите '$ msg'? Почему вы думаете, что '
' собирается что-то сделать для вас? –

+0

Да BR помещает разрывы строк в мой HTML-адрес электронной почты. PowerShell создает сообщение и отправляет его по электронной почте. –

+0

'
' - это тег HTML и не создает линейный фид в выводе PowerShell. Используйте '' 'n" 'для фидов строк. –

ответ

1

Было бы очевидно, что (если вы не объявляете его в другом месте) вы не объявляете $serversoffline как массив. Вы просто контактирующие строки.

Пример:

PS C:\Users\mmaeda> $Concat += "This" 
PS C:\Users\mmaeda> $Concat += "That" 
PS C:\Users\mmaeda> $Concat 
ThisThat 
PS C:\Users\mmaeda> $Array = @() 
PS C:\Users\mmaeda> $Array += "This" 
PS C:\Users\mmaeda> $Array += "That" 
PS C:\Users\mmaeda> $Array 
This 
That 

В качестве примечания: Что $results и $processnotrunning для? Я не вижу, чтобы они использовались для чего-либо в текущем коде.

+0

. Как выглядит вывод? И как выглядит вход (список серверов, список процессов)? Я думаю, что это может быть проблемой либо для определения области видимости, либо для ввода. –

Смежные вопросы