Monday, October 22, 2018

Disk space for a local drive using powershell

Disk space for a local drive using powershell

$freeSpaceFileName = "C:\temp\FreeSpace.htm"
New-Item -ItemType file $freeSpaceFileName -Force
Function writeHtmlHeader
{
param($fileName)
$date = ( get-date ).ToString('yyyy/MM/dd')
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>DiskSpace Report</title>'
add-content $fileName '<STYLE TYPE="text/css">'
add-content $fileName  "<!--"
add-content $fileName  "td {"
add-content $fileName  "font-family: Tahoma;"
add-content $fileName  "font-size: 11px;"
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  "-->"
add-content $fileName  "</style>"
Add-Content $fileName "</head>"
Add-Content $fileName "<body>"
add-content $fileName  "<table width='100%'>"
add-content $fileName  "<tr bgcolor='#5F9EA0'>"
add-content $fileName  "<td colspan='9' height='25'  width=5% align='left'>"
add-content $fileName  "<font face='tahoma' color='#000000' size='5'><center><strong>DiskSpace Report - $date</strong></center></font>"
add-content $fileName  "</td>"
add-content $fileName  "</tr>"

}
Function writeTableHeader
{
param($fileName)
Add-Content $fileName "<tr bgcolor=#5F9EA0>"
Add-Content $fileName "<td><b>Drive</b></td>"
Add-Content $fileName "<td><b>Drive Label</b></td>"
Add-Content $fileName "<td><b>Total Capacity(GB)</b></td>"
Add-Content $fileName "<td><b>Used Capacity(GB)</b></td>"
Add-Content $fileName "<td><b>Free Space(GB)</b></td>"
Add-Content $fileName "<td><b>FreeSpace % </b></td>"
Add-Content $fileName "</tr>"
}
Function writeHtmlFooter
{
param($fileName)

Add-Content $fileName "</body>"
Add-Content $fileName "</html>"
}
Function writeDiskInfo
{
param($fileName,$DeviceID,$VolumeName,$TotalSizeGB,$UsedSpaceGB,$FreeSpaceGB,$FreePer,$status)

Add-Content $fileName "<tr>"
Add-Content $fileName "<td >$DeviceID</td>"
Add-Content $fileName "<td >$VolumeName</td>"
Add-Content $fileName "<td >$TotalSizeGB</td>"
Add-Content $fileName "<td >$UsedSpaceGB</td>"
Add-Content $fileName "<td >$FreeSpaceGB</td>"
Add-Content $fileName "<td  bgcolor='#B8860B' >$FreePer</td>"
Add-Content $fileName "</tr>"
}
writeHtmlHeader $freeSpaceFileName
writeTableHeader $freeSpaceFileName
$diskinfo= Get-WmiObject -Class Win32_LogicalDisk
ForEach ($disk in $diskinfo)

{
     $deviceID=$disk.DeviceID
     $Volume=$disk.VolumeName
     $TotalSizeGB=[math]::Round(($disk.Size /1GB),2)
     $UsedSpaceGB=[math]::Round((($disk.Size - $disk.FreeSpace)/1GB),2)
     $FreeSpaceGB=[math]::Round(($disk.FreeSpace / 1GB),2)
     $FreePer=("{0:P}" -f ($disk.FreeSpace / $disk.Size))
 writeDiskInfo $freeSpaceFileName $DeviceID  $Volume $TotalSizeGB  $UsedSpaceGB $FreeSpaceGB $FreePer
}

Add-Content $freeSpaceFileName "</table>"
writeHtmlFooter $freeSpaceFileName

No comments:

Post a Comment