PowerShell/Scripts/check-drives.ps1
2022-10-16 11:06:11 +02:00

40 lines
971 B
PowerShell
Executable File

<#
.SYNOPSIS
Checks the free space of all drives
.DESCRIPTION
This PowerShell script checks all drives for free space left (10 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) {
$ID = $Drive.Name
$Details = (Get-PSDrive $ID)
[int]$Free = $Details.Free / 1GB
[int]$Used = $Details.Used / 1GB
[int]$Total = ($Used + $Free)
if ($Total -eq "0") {
"✅ Drive $ID is empty."
} elseif ($Free -lt $MinLevel) {
"⚠️ Drive $ID has only $Free GB of $Total GB left to use!"
} else {
"✅ Drive $ID has $Free GB of $Total GB left."
}
}
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}