Disk Usage

Power-shell Script to show Disk Usage in GB.

Disk Usage – A Script to show the usage of system disk in graphical charts. you can copy this script to use in your system.

This script will load Assemblies and windows form provided by .Net Framework.

How to Use.
Copy below script text to a file called “DiskUsage.ps1″
Run Powershell go to the path where file is saved.
Run script DiskUsage.ps1 for local system
Run script DiskUsage.ps1 x.x.x.x for remote system

Requirement: Powershell v2.0 or later, .Net Framework 4.0 or later

#——————————————————————————————
# load the appropriate assemblies
[void][Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
[void][Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms.DataVisualization”)
[void][Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)
[void][Windows.Forms.Application]::EnableVisualStyles()
[void][Windows.Forms.ComboBoxStyle]::DropDown

$Form = New-Object Windows.Forms.Form
$Form.Text = “PowerShell Chart”
$Form.Width = 600
$Form.Height = 600

$Label1 = New-Object System.Windows.Forms.Label
$Label1.Font = New-Object System.Drawing.Font(“Cooper Black”, 14.0, [System.Drawing.FontStyle]::Regular, [System.Drawing.GraphicsUnit]::Point, ([System.Byte](0)))
$Label1.Location = New-Object System.Drawing.Point(40, 5)
$Label1.Size = New-Object System.Drawing.Size(300, 50)
$Label1.TabIndex = 1
$Label1.Text = “Disk Utilization in GB”
$Label1.BackColor = [System.Drawing.Color]::Transparent
$Label1.ForeColor = [System.Drawing.Color]::DarkRed

$Chart = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$Chart.Width = 500
$Chart.Height = 500
$Chart.Left = 40
$Chart.Top = 30

$ChartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$chartarea.AxisY.Interval = 10

$Chart.ChartAreas.Add($ChartArea)
[void] $Chart.Series.Add(“Data”)

if (!$args)
{
$Usage_in_GB = gwmi win32_logicaldisk -Filter “drivetype=3” | select deviceid,@{n=‘Usage’; e={“{0:n2}” -f (($_.size/1gb) ($_.freespace/1gb)) }}
$t = $Usage_in_GB | ForEach-Object { $chart.Series[“Data”].Points.AddXY($_.deviceid,$_.usage) }
}
else
{
$Usage_in_GB = gwmi win32_logicaldisk -ComputerName $args -Filter “drivetype=3” | select deviceid,@{n=‘Usage’; e={“{0:n2}” -f (($_.size/1gb) ($_.freespace/1gb)) }}
$t = $Usage_in_GB | ForEach-Object { $chart.Series[“Data”].Points.AddXY($_.deviceid,$_.usage) }
}

$Chart.Series[“Data”].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::column
$Form.controls.add($Chart)
$Form.Controls.Add($Label1)
$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()
#——————————————————————————————

Output

Disk Usage in GB

 

Leave a Reply