How to Get Disk Size and Free Space Using PowerShell
Introduction
Sometimes IT Admin or Software Engineers have a task to get information about disk space. Rather than navigating Windows Explorer to get information, they can automate using PowerShell which is much quicker.
In this article, we’ll walk through how to get information about disk size and free space using PowerShell.
Solution
Using Get-PSDrive Cmdlet
Get-PSDrive cmdlet can be used to get drive information.
Get-PSDrive
To get drive information on specific drive, we can specify the drive name:
Get-PSDrive -Name C
The information will looke like below image:

Using Get-Volume Cmdlet
Get-Volume cmdlet can also be used to get disk size and free space.
Get-Volume
To get drive information on specific drive, we can specify the drive name:
Get-Volume -DriveLetter C
The information will looke like below image:

Using Get-WmiObject Cmdlet
You can also use Get-WmiObject cmdlet to get disk size and free space.
Get-WmiObject -ClassName Win32_LogicalDisk | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
Size = [Math]::Round($_.Size / 1GB, 2)
FreeSpace = [Math]::Round($_.FreeSpace / 1GB, 2)
}
}
The result will look like below image:

Using Get-CimInstance Cmdlet
You can also use Get-CimInstance cmdlet to get disk size and free space.
Get-CimInstance -ClassName Win32_LogicalDisk | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
Size = [Math]::Round($_.Size / 1GB, 2)
FreeSpace = [Math]::Round($_.FreeSpace / 1GB, 2)
}
}
The result will look like below image:

Using Wmic command
WMIC is a command-line tool in Windows that allows users to access system-related information, such as disk size. The commands can be run in PowerShell as well.
wmic logicaldisk get size, freespace, caption
Below is the result:

Using Fsutil command
Fsutil is another command line utility tools that can be used in PowerShell to get disk size and free space information.
fsutil volume diskfree c:
Below is the result where the bytes are already formatted by default:

Conclusion
There are 4 cmdlet that can be used to get disk size and free space using PowerShell: Get-PSDrive, Get-Volume, Get-WmiObject, and Get-CimInstance.
There are also 2 other commands that can be used which are Wmic and Fsutil.