I like to format my HTML output and seems to be different if I run script and output the HTML file to file vs adding the HTML file to the body of my email , when I ad it to email it changes color of the table borders and add this to the upper left of the Server Name field.
<="" p=""> Server Name | UpTime |
Here is my script
$a = @"
<style>
TD{font-size:16pt}
</style>
"@
#Html Page
$now=get-date
$table="<HTML><HEAD><TITLE>Server Uptime Page</TITLE></HEAD><BODY><p align=Center><font size=6 face=Bodoni MT color=#003333><B>Server UpTime Report</B></font></p>"
$table += "<p align=Center><font face=Bodoni MT color=Green size=3>Last pulled : $now CST</font></P>"
$table +="<p align=Center><table BORDER=1 width=500 cellspacing=0 cellpadding=3 </P>"
$table +="<tr>"
$table +="<th bgcolor=#DFFFFF colspan=1 width=300><p align=center><b><font face=Verdana size=5 color=#000000>Server Name</font></b></p></th>"
$table +="<th bgcolor=#DFFFFF colspan=1 width=200><p align=center><b><font face=Verdana size=5 color=#000000>UpTime</font></b></p></th>"
$table +="</tr>"
$nNeedToReboot=0
$nServerList=0
$more100=""
$bw75100=""
$bw5075=""
$bw3050=""
$bw029=""
$ErrorSvr=""
$svrlist =get-content C:\Temp\Servers.txt ##Source File
$LastUpdatedSvrList=(dir C:\Temp\Servers.txt).lastwritetime
foreach($svr in $svrlist)
{
if($svr -ne ""){
$nServerList++
$uptime=-1
$lastreboot=-1
$wmi=$null
#Write-Host "Server is $svr"
$wmi = Get-WmiObject -Class Win32_OperatingSystem -Computer $svr
$lastreboot=$wmi.ConvertToDateTime($wmi.LastBootUpTime)
$uptime=($now-$lastreboot).days
$Svr+" : "+$uptime+" : "+$lastreboot
if($uptime -gt 99){
$nNeedToReboot++
$more100 += "<tr bgcolor='#FF0000'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 74 -AND $uptime -lt 100){
$nNeedToReboot++
$bw75100 += "<tr bgcolor='#E42217' ><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 49 -AND $uptime -lt 75){
$nNeedToReboot++
$bw5075 += "<tr bgcolor='#C11B17'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt 29 -AND $uptime -lt 50){
$nNeedToReboot++
$bw3050 += "<tr bgcolor='#DC381F'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -gt -1 -AND $uptime -lt 30){
$bw029 += "<tr bgcolor='#6CBB3C'><td>"+$svr+"</td><td align=center>"+$uptime+"</td></tr>"
#Write-Host "$svr $uptime"
}
if($uptime -eq -1 -OR $lastreboot -eq -1){
$ErrorSvr += "<tr bgcolor='#FF0000'><td>"+$svr+"</td><td align=center>Error connection</td></tr>"
#Write-Host "$svr $uptime"
}
}
}
$table += $more100+$bw75100+$bw5075+$bw3050+$bw029+$ErrorSvr
$table+="</table>"
$table +="<font size=4 face=Bodoni MT color=#003333><B>Servers in List : </B></font>$nServerList<br>"
$table +="<font size=4 face=Bodoni MT color=#003333><B>Servers Need to be Rebooted : </B></font>$nNeedToReboot<br>"
$table | ConvertTo-HTML -head $a | Out-File C:\Temp\Uptime.html
# Exit
# $body = Get-Content -Path "C:\Temp\Uptime.html" -Raw
Send-MailMessage @smtpsettings -Body $table -BodyAsHTML