PowerShell/Scripts/check-drives.ps1

39 lines
1.0 KiB
PowerShell
Executable File

<#
.SYNOPSIS
Checks the free space of all drives
.DESCRIPTION
This PowerShell script checks all drives for free space left (20 GB by default).
.PARAMETER MinLevel
Specifies the minimum warning level (10 GB by default)
.EXAMPLE
PS> ./check-drives
.LINK
https://github.com/fleschutz/PowerShell
.NOTES
Author: Markus Fleschutz | License: CC0
#>
param([int]$MinLevel = 10) # 10 GB minimum
try {
$Drives = Get-PSDrive -PSProvider FileSystem
foreach($Drive in $Drives) {
$DriveDetails = (Get-PSDrive $Drive.Name)
[int]$Free = (($DriveDetails.Free / 1024) / 1024) / 1024
[int]$Used = (($DriveDetails.Used / 1024) / 1024) / 1024
[int]$Total = ($Used + $Free)
if ($Total -eq "0") {
"✅ Drive $($Drive.Name) is empty."
} elseif ($Free -lt $MinLevel) {
"⚠️ Drive $($Drive.Name) has only $Free GB left to use! $Used of $Total GB is in use."
} else {
"✅ Drive $($Drive.Name) has $($Free) GB left, $($Total) GB total."
}
}
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}