View Single Post
Old 12-30-2008   #6 (permalink)
OldDog


 
 

Re: ping results to html file

On Dec 23, 2:29*am, Eero J <Ee...@xxxxxx> wrote:
Quote:

> Thank you very much for an excellent re-work with this script.
> One more question. I would like the html to be overwrited everytime the
> script activates. Meaning that only the latest ping result will be displayed
> in HTM file.
> How could this be done?
>
>
>
> "OldDog" wrote:
Quote:

> > On Dec 22, 3:44 am, Eero J <Eero J...@xxxxxx>
> > wrote:
Quote:

> > > I have a list of servers in my MachineList.txt file.
> > > I want to get the result of this script to go to html file.
> > > The idea is to have a ping monitoring html file, where pinging servers are
> > > displayed green and not pinging servers are displayed red.
> > > Here is my script:
>
Quote:
Quote:

> > > Clear
>
Quote:
Quote:

> > > $PingMachines = Gc "C:\MachineList.txt"
> > > ForEach($MachineName In $PingMachines)
> > > {$PingStatus = Gwmi Win32_PingStatus -Filter "Address = '$MachineName'" |
> > > Select-Object StatusCode
> > > If ($PingStatus.StatusCode -eq 0)
> > > {Write-Host $MachineName -Fore "Green"}
> > > Else
> > > {Write-Host $MachineName -Fore "Red"}}
>
Quote:
Quote:

> > > Could i implement something like this somewhere in the script?:
> > > {$MachineName | Convertto-Html > C:\PingResults.htm}}
> > > Ho would the correct script look like?
>
Quote:

> > This might not be the most elegant, but it works;
>
Quote:

> > # Red = #FF0000
> > # Green = #00FF00
> > # Blue = #0000FF
> > # Cyan (blue and green) = #00FFFF
> > # Magenta (red and blue) = #FF00FF
> > # Yellow (red and green) = #FFFF00
>
Quote:

> > clear
> > $pingResults =("C:\Scripts\PingResults\pingResults.HTM")
> > $RunDate *= (get-date).tostring("MM_dd_yyyy")
> > $PingTime = (Get-Date -format 'hh:mm')
>
Quote:

> > #Write the preamble of the report
> > Add-Content -Path $pingResults ("<!DOCTYPE HTML PUBLIC -//W3C//DTD
> > HTML 4.0//ENhttp://www.w3.org/TR/REC-html40/strict.dtd>")
> > Add-Content -Path $pingResults ("<html> <p>")
> > Add-Content -Path $pingResults ("<head> <p>")
> > Add-Content -Path $pingResults ("<title> Ping Results </title>")
> > Add-Content -Path $pingResults ("</head>")
> > Add-Content -Path $pingResults ("<h3>Report Generated " + $RunDate + "
> > @ " + $PingTime + "</h3> <p>")
>
Quote:

> > $PingMachines = Gc "C:\MachineList.txt"
> > ForEach($MachineName In $PingMachines)
> > {$PingStatus = Gwmi Win32_PingStatus -Filter "Address =
> > '$MachineName'" |
> > Select-Object StatusCode
> > If ($PingStatus.StatusCode -eq 0)
> > {Add-Content -Path $pingResults ("<pre><h3>Server Name: <FONT color =
> > #00FF00>" + $MachineName + "</FONT></h3></pre><br>")}
> > Else
> > {Add-Content -Path $pingResults ("<pre><h3>Server Name: <FONT color =
> > #FF0000>" + $MachineName + "</FONT></h3></pre><br>")
> > Add-Content -Path $pingResults ("<p><br>")}
> > }- Hide quoted text -
>
> - Show quoted text -
Change this line:

Add-Content -Path $pingResults ("<!DOCTYPE HTML PUBLIC -//W3C//DTD
HTML 4.0//EN http://www.w3.org/TR/REC-html40/strict.dtd>")

To this:

Set-Content -Path $pingResults ("<!DOCTYPE HTML PUBLIC -//W3C//DTD
HTML 4.0//EN http://www.w3.org/TR/REC-html40/strict.dtd>")

My System SpecsSystem Spec