$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
Как вы печатаете/выводите '$ msg'? Почему вы думаете, что '
' собирается что-то сделать для вас? –
Да BR помещает разрывы строк в мой HTML-адрес электронной почты. PowerShell создает сообщение и отправляет его по электронной почте. –
'
' - это тег HTML и не создает линейный фид в выводе PowerShell. Используйте '' 'n" 'для фидов строк. –