Quantcast
Channel: VMware Communities: Message List
Viewing all articles
Browse latest Browse all 232413

Trouble Formatting Font Color in Report

$
0
0

Hi

 

I put together a script that reports on datastores from various code examples and LucD's Get-FriendlyUnit finction.

 

The output formats the font color to red for Provisioned Space when it's larger than the Capactiy but for some reason in some instances the font is still red even when the Provisoned Space is not larger than the capacity:

 

  Report.png

 

This the code that I'm using to change the font color:

 

If ($Capacity -gt $Provisioned)
    {$tableEntry = "<tr><td><font face='Tahoma'>$Name</font></td><td><center><font face='Tahoma'>$Capacity</font></center></td><td><center><font face='Tahoma'>$Provisioned</font></center></td><td><center><font face='Tahoma'>$FreeSpace</font></center></td><td><center></font></center></td></tr>"       
Add-Content $fileName $tableEntry       
Write-Host $tableEntry}

    ElseIf ($Capacity -lt $Provisioned)
    {$tableEntry = "<tr><td><font face='Tahoma'>$Name</font></td><td><center><font face='Tahoma'>$Capacity</font></center></td><td><center><font face='Tahoma'color = 'red'>$Provisioned</font></center></td><td><center><font face='Tahoma'>$FreeSpace</font></center></td><td><center></font></center></td></tr>"       
Add-Content $fileName $tableEntry       
Write-Host $tableEntry}

 

Here is the full code:

 

If ((Remove-Item "DS-Report.htm" -ErrorAction SilentlyContinue) -eq $null)
{Remove-Item "DS-Report.htm" -ErrorAction SilentlyContinue}


#Connect to vCenter Server
#---------------------------------------
$vC = "VC1"
Connect-VIServer $vC -WarningAction SilentlyContinue

$date = ( Get-Date ).ToString('yyyy/MM/dd')
$Title = "Datastore Usage Report"
$DC = "Datacenter1"

$DateStamp = get-date -uformat "%Y-%m-%d@%H-%M-%S"

#Create file for new run
New-Item -ItemType file "DS-Report.htm"
$fileName = "DS-Report.htm"
#-------------------------------------------------------------

#HTML Header for Output
Function writeHtmlHeader
{
param($fileName)

Add-Content $fileName "<html>"
Add-Content $fileName "<head>"
Add-Content $fileName "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"
Add-Content $fileName '<title>$Title</title>'
Add-Content $fileName '<STYLE TYPE="text/css">'
Add-Content $fileName  "<!--"
Add-Content $fileName  "td {"
Add-Content $fileName  "font-family: Calibri;"
Add-Content $fileName  "font-size: 13px;"
Add-Content $fileName  "border-top: 1px solid #999999;"
Add-Content $fileName  "border-right: 1px solid #999999;"
Add-Content $fileName  "border-bottom: 1px solid #999999;"
Add-Content $fileName  "border-left: 1px solid #999999;"
Add-Content $fileName  "padding-top: 0px;"
Add-Content $fileName  "padding-right: 0px;"
Add-Content $fileName  "padding-bottom: 0px;"
Add-Content $fileName  "padding-left: 0px;"
Add-Content $fileName  "}"
Add-Content $fileName  "body {"
Add-Content $fileName  "margin-left: 5px;"
Add-Content $fileName  "margin-top: 5px;"
Add-Content $fileName  "margin-right: 0px;"
Add-Content $fileName  "margin-bottom: 10px;"
Add-Content $fileName  ""
Add-Content $fileName  "table {"
Add-Content $fileName  "border: thin solid #000000;"
Add-Content $fileName  "}"
Add-Content $fileName  "-->"
Add-Content $fileName  "</style>"
Add-Content $fileName "</head>"
Add-Content $fileName "<body>"
Add-Content $fileName  "<table width='60%'>"
Add-Content $fileName  "<tr bgcolor='#FFFFFF'>"
Add-Content $fileName  "<td colspan='7' height='25' align='center'>"
#Edit Title Below
#Add-Content $fileName  "<font face='Tahoma' color='red' size='3'><strong>Critical - </strong></font>"
#Add-Content $fileName  "<font face='Tahoma' color='gold' size='3'><strong>Warning - </strong></font>"
Add-Content $fileName  "<font face='Tahoma' color='#003399' size='3'><strong>$Title - $Date</strong></font>"
#--------------------------------------------------------------------------------------------------------------------------------------------------------------

#Edit Title Above
Add-Content $fileName  "</td>"
Add-Content $fileName  "</tr>"
Add-Content $fileName  "</table>"
}

#----------------------------------------------------

# Function to write the HTML Header to the file
Function writeTableHeader
{
param($fileName)
Add-Content $fileName "<table width='60%'><tbody>"
Add-Content $fileName "<tr bgcolor=#003399>"
Add-Content $fileName "<td align='center'><font face='Tahoma' color='#FFFFFF'><b>Datastore Name</b></font></td>"
Add-Content $fileName "<td align='center'><font face='Tahoma' color='#FFFFFF'><b>Capacity</b></font></td>"
Add-Content $fileName "<td align='center'><font face='Tahoma' color='#FFFFFF'><b>Provisioned Space</b></font></td>"
Add-Content $fileName "<td align='center'><font face='Tahoma' color='#FFFFFF'><b>Free Space</b></font></td>"
#Add-Content $fileName "<td align='center'><font face='Tahoma' color='#FFFFFF'><b>% Free</b></font></td>"
Add-Content $fileName "</tr>"
}

#--------------------------------------------------------

# Function to write the HTML Footer
Function writeHtmlFooter
{
param($fileName)
Add-Content $fileName "</table>"
Add-Content $fileName "<left><font face='Tahoma' color='#003399' size='2'><weak>Send All Inqueries Regarding this Report to Anthony.G.Flora@IRS.GOV</left>"
Add-Content $fileName "</body>"
Add-Content $fileName "</html>"
}

#--------------------------------------------------------------
#---Function Get-FriendlyUnit----------------------------------
#--------------------------------------------------------------
function Get-FriendlyUnit{
<#
.SYNOPSIS  Convert numbers into smaller binary multiples
.DESCRIPTION The function accepts a value and will convert it
  into the biggest binary unit available.
.NOTES  Author:  Luc Dekens
.PARAMETER Value
  The value you want to convert.
  This number must be positive.
.PARAMETER IEC
  A switch to indicate if the function shall return the IEC
  unit names, or the more commonly used unit names.
  The default is to use the commonly used unit names.
.EXAMPLE
  PS> Get-FriendlyUnit -Value 123456
.EXAMPLE
  PS> 123456 | Get-FriendlyUnit -IEC
.EXAMPLE
  PS> Get-FriendlyUnit -Value 123456,789123, 45678
.EXAMPLE
  PS> Get-Datastore -Name DS1 |
  Select Name,@{N="Capacity";E={
  Get-FriendlyUnit -Value ($_.CapacityMB * 1MB) |
  %{"{0,7:f2} {1,2}" -f $_.Value,$_.Unit}}
}
#>
  param(
  [CmdletBinding()]
  [parameter(Mandatory = $true, ValueFromPipeline = $true)]
  [double[]]$Value,
  [switch]$IEC
  )

  begin{
    $OldUnits = "B","KB","MB","GB","TB","PB","EB","ZB","YB"
    $IecUnits = "B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"
    if($IEC){$units = $IecUnits}else{$units=$OldUnits}
  }

  process{
    $Value | %{
      if($_ -lt 0){
        write-Error "Numbers must be positive."
        break
      }
      if($value -gt 0){
        $modifier = [math]::Floor([Math]::Log($_,1KB))
      }
      else{
        $modifier = 0
      }
      New-Object PSObject -Property @{
        Value = $_ / [math]::Pow(1KB,$modifier)
        Unit = &{if($modifier -lt $units.Count){$units[$modifier]}else{"1KB E{0}" -f $modifier}}
      }
    }
  }
}
#---End of Function Get-FriendlyUnit---------------------------

 

Function GetDS {
    $report = Get-DataCenter $DC | Get-Datastore |
        Where-Object {$_.Name -notlike "DataStore1*"} | %{
        New-Object PSObject -Property @{
            Name = $_.name           
            Capacity = Get-FriendlyUnit -Value ($_.CapacityMB * 1MB) |
   %{"{0,7:f2} {1,2}" -f $_.Value,$_.Unit}
   Provisioned = Get-FriendlyUnit -Value ($_.ExtensionData.Summary.Capacity - $_.ExtensionData.Summary.FreeSpace +
   $_.ExtensionData.Summary.Uncommitted)|
   %{"{0,7:f2} {1,2}" -f $_.Value,$_.Unit}
              FreeSpace = Get-FriendlyUnit -Value ($_.FreeSpaceMB * 1MB) |
   %{"{0,7:f2} {1,2}" -f $_.Value,$_.Unit}
  
  
        }
    } | Sort-Object -Property Name 
     $report | %{
        writedata $_.Name $_.Capacity $_.Provisioned $_.FreeSpace       
        }
}


# Function will compile the data passed from the GetDS Function into HTML table format
Function writedata {
    param ($Name,$Capacity,$Provisioned,$FreeSpace)


    If ($Capacity -gt $Provisioned)
    {$tableEntry = "<tr><td><font face='Tahoma'>$Name</font></td><td><center><font face='Tahoma'>$Capacity</font></center></td><td><center><font

face='Tahoma'>$Provisioned</font></center></td><td><center><font face='Tahoma'>$FreeSpace</font></center></td><td><center></font></center></td></tr>"       
Add-Content $fileName $tableEntry       
Write-Host $tableEntry}

    ElseIf ($Capacity -lt $Provisioned)
    {$tableEntry = "<tr><td><font face='Tahoma'>$Name</font></td><td><center><font face='Tahoma'>$Capacity</font></center></td><td><center><font

face='Tahoma'color = 'red'>$Provisioned</font></center></td><td><center><font

face='Tahoma'>$FreeSpace</font></center></td><td><center></font></center></td></tr>"       
Add-Content $fileName $tableEntry       
Write-Host $tableEntry}

   <#
   ElseIf ($_.PercFree-lt $Warning)
    {$tableEntry = "<tr><td><font face='Tahoma'>$Name</font></td><td><center><b><font face='Tahoma'>$Capacity</font></b></center></td><td><center><b><font

face='Tahoma'>$Provisioned</font></b></center></td><td><center><b><font face='Tahoma'>$FreeSpace</font></b></center></td><td><center><b><font

face='Tahoma'color = 'Orange'>$PercFree</font></b></center></td></tr>"       
Add-Content $fileName $tableEntry       
Write-Host $tableEntry}
#>
}


##Disconnect from vCenter server
################################
Disconnect-VIServer -Confirm:$False

##End of script

 



Viewing all articles
Browse latest Browse all 232413

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>