Server Monitoring with web based status page

i used the following to do this:

$no = "not checked" $ro = "not checked" $go = "not checked" $ho = "not checked" $po = "not checked"

$nasobject = New-Object System.Object $nasobject | Add-Member -type NoteProperty -name servername -Value "Depot" $nasobject | Add-Member -type NoteProperty -name serverip -Value "172.28.192.1" $nasobject | Add-Member -type NoteProperty -name serverstatus -Value $no $nasobject | Add-Member -type NoteProperty -name serverchecked -Value $ts $nasobject | Add-Member -type NoteProperty -name result -Value $results

$routerobject = New-Object System.Object $routerobject | Add-Member -type NoteProperty -name servername -Value "Niddrie" $routerobject | Add-Member -type NoteProperty -name serverip -Value "172.28.8.1" $routerobject | Add-Member -type NoteProperty -name serverstatus -Value $ro $routerobject | Add-Member -type NoteProperty -name serverchecked -Value $ts $routerobject | Add-Member -type NoteProperty -name result -Value $results

$googleobject = New-Object System.Object $googleobject | Add-Member -type NoteProperty -name servername -Value "Avondale Heights" $googleobject | Add-Member -type NoteProperty -name serverip -Value "172.28.14.1" $googleobject | Add-Member -type NoteProperty -name serverstatus -Value $go $googleobject | Add-Member -type NoteProperty -name serverchecked -Value $ts $googleobject | Add-Member -type NoteProperty -name result -Value $results

$hostobject = New-Object System.Object $hostobject | Add-Member -type NoteProperty -name servername -Value "Flemington" $hostobject | Add-Member -type NoteProperty -name serverip -Value "172.28.10.1" $hostobject | Add-Member -type NoteProperty -name serverstatus -Value $ho $hostobject | Add-Member -type NoteProperty -name serverchecked -Value $ts $hostobject | Add-Member -type NoteProperty -name result -Value $results

$serverlist = @() $serverlist += $nasobject, $routerobject, $googleobject, $hostobject

while($true){

$ts = get-date -format T

$no = Test-Connection -count 1 -ComputerName $nasobject.serverip -quiet $ho= Test-Connection -count 1 -ComputerName $hostobject.serverip -quiet $ro = Test-Connection -count 1 -ComputerName $routerobject.serverip -quiet $go = Test-Connection -count 1 -ComputerName $googleobject.serverip -quiet

If ($no -eq $True) { $no_result = "Up" } else {$no_result = "down"} If ($ho -eq $True) { $ho_result = "Up" } else {$ho_result = "down"} If ($ro -eq $True) { $ro_result = "Up" } else {$ro_result = "down"} If ($go -eq $True) { $go_result = "Up" } else {$go_result = "down"}

$nasobject | Add-Member -Force -type NoteProperty -name serverchecked -Value $ts $routerobject | Add-Member -Force -type NoteProperty -name serverchecked -Value $ts $googleobject | Add-Member -Force -type NoteProperty -name serverchecked -Value $ts $hostobject | Add-Member -Force -type NoteProperty -name serverchecked -Value $ts

## SERVER STATUS

$nasobject | Add-Member -Force -type NoteProperty -name serverstatus -Value $no $routerobject | Add-Member -Force -type NoteProperty -name serverstatus -Value $ro $googleobject | Add-Member -Force -type NoteProperty -name serverstatus -Value $go $hostobject | Add-Member -Force -type NoteProperty -name serverstatus -Value $ho

## RESULTS

$nasobject | Add-Member -Force -type NoteProperty -name result -Value $NO_RESULT $routerobject | Add-Member -Force -type NoteProperty -name result -Value $ro_RESULT $googleobject | Add-Member -Force -type NoteProperty -name result -Value $go_RESULT $hostobject | Add-Member -Force -type NoteProperty -name result -Value $ho_RESULT

$serverlist | select servername, serverchecked, result | ConvertTo-Html -head $header -body $body | Out-File C:\scripts\uptime.html

$header = @" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <META HTTP-EQUIV="refresh" CONTENT="25"> <head> <title>Microwave link</title> <style type="text/css"> <!-- body { background-color: #E0E0E0; font-family: sans-serif } table, th, td { background-color: white; border-collapse:collapse; border: 1px solid black; padding: 5px } --> </style> "@

$body = @" "@ $serverlist }

there are cleaner ways to do this but this worked for me

/r/msp Thread Parent