Skip to content

Instantly share code, notes, and snippets.

@Rugby-Ball
Last active August 18, 2023 14:24
Show Gist options
  • Save Rugby-Ball/b32ee5da9e81157087b980d60eeb69a1 to your computer and use it in GitHub Desktop.
Save Rugby-Ball/b32ee5da9e81157087b980d60eeb69a1 to your computer and use it in GitHub Desktop.
Run this to get folder file count, and size in Byte, KB, MB and GB #Utility #Inventory #Public #Windows #File_System
$targetfolder='\\computer_name\data\' # Can use Drive letters, or UNC Paths that you have permissions to.
#
##Check if c:\temp exists, if it doesnt create it.
If (-not(Test-Path -Path "c:\temp"))
{ New-Item -ItemType Directory -Force -Path C:\temp }
$dataColl = @()
Get-ChildItem -force $targetfolder -recurse -ErrorAction SilentlyContinue | Where-Object { $_ -is [io.directoryinfo] } | % {
$len = 0
$count = 0
$lastfiledate = ""
Get-ChildItem -recurse -force $_.fullname -ErrorAction SilentlyContinue | ForEach-Object { $len += $_.length }
Get-ChildItem -recurse -force $_.fullname -ErrorAction SilentlyContinue | ForEach-Object { $count += $_.count }
$lastfiledate = if ($count -ne 0) { (Get-ChildItem -force $_.fullname -ErrorAction SilentlyContinue | Where-Object{-not $_.PsIsContainer} | Sort-Object LastWriteTime | Select-Object -last 1).lastwritetime | Get-Date -f "MM/dd/yyyy hh:mm tt" }
$foldername = $_.fullname
$foldersizeKb= '{0:N2}' -f ($len / 1Kb)
$foldersizeMb= '{0:N2}' -f ($len / 1Mb)
$foldersizeGb= '{0:N2}' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeByte” -value $Len
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeKb” -value $foldersizeKb
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeMb” -value $foldersizeMb
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersizeGb
Add-Member -inputObject $dataObject -memberType NoteProperty -name “folderFileCount” -value $count
Add-Member -inputObject $dataObject -memberType NoteProperty -name “LastFileDate” -value $lastfiledate
$dataColl += $dataObject
}
$dataColl | Export-csv -NoTypeInformation -Path "c:\temp\folder-size-$(Get-Date -f yyyyMMdd-hhmm ).csv" #| Out-GridView -Title “Size of all subdirectories in $targetfolder”
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment