Calculate how many Gigabytes you need to extend your disk with, to gain a certain percentage free disk space, with this PowerShell script!
This evening i was asked if i did remember how to do a percentage calculation, in order to tell by how many gigabyte a disk needed to be extended to gain 20% free disk space.
The result was this PowerShell script, that i am sharing with you!
Usage
To use this script you need to load the function, and then run it with three parameters like this
Get-DiskExtentionInfo -CurrSpaceTotal 2000 -CurrSpaceFree 100 -TargetFreePerc 0.2
This will return as a object, you can either add it to a variable like this
$DiskInfo = Get-DiskExtentionInfo -CurrSpaceTotal 2000 -CurrSpaceFree 100 -TargetFreePerc 0.2
Or you can access the info directly like this
(Get-DiskExtentionInfo -CurrSpaceTotal 2000 -CurrSpaceFree 100 -TargetFreePerc 0.2).ExtendWith
The Script: Get-DiskExtentionInfo
Function Get-DiskExtentionInfo {
[cmdletbinding()]
Param (
# Set starting variables
[Parameter(Mandatory=$True)]
[int]$CurrSpaceTotal,
[Parameter(Mandatory=$True)]
[int]$CurrSpaceFree,
[Parameter(Mandatory=$True)]
[string]$TargetFreePerc
)
# Calculate how much space is in use right now
$CurrSpaceInUse = $CurrSpaceTotal-$CurrSpaceFree
# Calculate the number to divide with
$DivideNumber = 1-$TargetFreePerc
# Finding the new total size of the disk.
$NewTotalSize = $CurrSpaceInUse/$DivideNumber
# Find out by how much you need to extent the disk with
$NewExtend = $NewTotalSize-$CurrSpaceTotal
# Calculate how much diskspace is free now
$NewFree = $NewTotalSize-$CurrSpaceInUse
# Generate the return object
$Return = New-Object -TypeName PSObject
$Return | Add-Member -MemberType NoteProperty -Name TotalSpace -Value $NewTotalSize
$Return | Add-Member -MemberType NoteProperty -Name FreeSpace -Value $NewFree
$Return | Add-Member -MemberType NoteProperty -Name ExtendWith -Value $NewExtend
Return $Return
}
Example usage
Get-DiskExtentionInfo -CurrSpaceTotal 2000 -CurrSpaceFree 100 -TargetFreePerc 0.2
Will return the following information
TotalSpace FreeSpace ExtendWith
---------- --------- ----------
2375 475 375






