Monthly Archive

Categories

Get-DiskSpace

The Get-DiskSpace cmdlet from the NTFSsecurity module is useful in that it gives ready calculated percentages of free and used space:

AvailableFreeSpacePercent : 56.73%
AvailableFreeSpaceUnitSize : 270.11 GB
ClusterSize : 4096
DriveName : \\?\Volume{c1c4c5bb-0000-0000-0000-f01500000000}\
TotalSizeUnitSize : 476.1 GB
UsedSpacePercent : 43.27%
UsedSpaceUnitSize : 206 GB
FreeBytesAvailable : 290024239104
TotalNumberOfBytes : 511210610688
TotalNumberOfFreeBytes : 290024239104
BytesPerSector : 512
NumberOfFreeClusters : 70806699
SectorsPerCluster : 8
TotalNumberOfClusters : 124807278

 

BUT as you can see it doesn’t identify the Drive Name by user friendly name.

You can do

PS> Get-DiskSpace -DriveLetter C:

AvailableFreeSpacePercent : 56.73%
AvailableFreeSpaceUnitSize : 270.1 GB
ClusterSize : 4096
DriveName : C:\
TotalSizeUnitSize : 476.1 GB
UsedSpacePercent : 43.27%
UsedSpaceUnitSize : 206 GB
FreeBytesAvailable : 290020270080
TotalNumberOfBytes : 511210610688
TotalNumberOfFreeBytes : 290020270080
BytesPerSector : 512
NumberOfFreeClusters : 70805730
SectorsPerCluster : 8
TotalNumberOfClusters : 124807278

 

but that means passing each drive separately. The DriveLetter parameter should take an array of drives according to the syntax diagram but that doesn’t seem to work.

 

Try running something like

Get-Volume |
where DriveLetter |
sort Driveletter |
foreach {
Get-DiskSpace -DriveLetter "$($_.Driveletter):" |
select DriveName, TotalSizeUnitSize, UsedSpaceUnitSize,
AvailableFreeSpaceUnitSize, UsedSpacePercent, AvailableFreeSpacePercent
}

and you get a nice output

DriveName : C:\
TotalSizeUnitSize : 476.1 GB
UsedSpaceUnitSize : 206 GB
AvailableFreeSpaceUnitSize : 270.1 GB
UsedSpacePercent : 43.27%
AvailableFreeSpacePercent : 56.73%

Comments are closed.