Steven's solution is arguably better than mine. :) -----get-foldersize.ps1----- Param( [string]$path = $home, [switch]$sortBySize )
function Get-FolderSize( $path ) { $code = { ('{0:0.0} MB' -f ($this/1MB)) } Get-ChildItem -Path $Path | Where-Object { $_.Length -eq $null } | ForEach-Object { Write-Progress -Activity 'Calculating Total Size for:' -Status $_.FullName $sum = Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue $bytes = $sum.Sum if ($bytes -eq $null) { $bytes = 0 } $result = 1 | Select-Object -Property Path, TotalSize $result.Path = $_.FullName $result.TotalSize = $bytes | Add-Member -MemberType ScriptMethod -Name toString -Value $code -Force -PassThru $result } } if( $sortBySize ) { Get-FolderSize $path | sort -Property TotalSize } else { Get-FolderSize $path } -----get-foldersize.ps1----- Regards, Michael B. Smith Consultant and Exchange MVP http://TheEssentialExchange.com From: John Hornbuckle [mailto:john.hornbuc...@taylor.k12.fl.us] Sent: Thursday, November 10, 2011 3:35 PM To: NT System Admin Issues Subject: RE: Easy Way to View and Sort By Folder Sizes Can you tell a PS novice how to get this to sort by size? That would make it perfect. John From: Michael B. Smith [mailto:mich...@smithcons.com]<mailto:[mailto:mich...@smithcons.com]> Sent: Thursday, November 10, 2011 1:41 PM To: NT System Admin Issues Subject: RE: Easy Way to View and Sort By Folder Sizes I wrote this for someone here (well, on some mailing list, I think it was this one) a couple months ago, but I use it all the time now. -----get-foldersize.ps1----- function Get-FolderSize( $path = $home ) { $code = { ('{0:0.0} MB' -f ($this/1MB)) } Get-ChildItem -Path $Path | Where-Object { $_.Length -eq $null } | ForEach-Object { Write-Progress -Activity 'Calculating Total Size for:' -Status $_.FullName $sum = Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue $bytes = $sum.Sum if ($bytes -eq $null) { $bytes = 0 } $result = 1 | Select-Object -Property Path, TotalSize $result.Path = $_.FullName $result.TotalSize = $bytes | Add-Member -MemberType ScriptMethod -Name toString -Value $code -Force -PassThru $result } } Get-FolderSize $args -----get-foldersize.ps1----- Example: PS C:\Scripts> .\Get-FolderSize.ps1 c:\windows Path TotalSize ---- --------- C:\windows\ADAM 3.6 MB C:\windows\ADWS 0.7 MB C:\windows\AppCompat 0.1 MB C:\windows\AppPatch 10.4 MB C:\windows\assembly 2436.4 MB C:\windows\Boot 19.7 MB C:\windows\Branding 2.2 MB C:\windows\CSC 0.0 MB C:\windows\Cursors 0.1 MB C:\windows\debug 8.6 MB C:\windows\diagnostics 1.0 MB C:\windows\DigitalLocker 0.0 MB C:\windows\Downloaded Installations 4.9 MB C:\windows\Downloaded Program Files 19.7 MB C:\windows\Driver Cache 0.3 MB C:\windows\en 0.1 MB C:\windows\en-US 0.1 MB C:\windows\Fonts 376.1 MB C:\windows\Globalization 9.6 MB C:\windows\Help 68.1 MB C:\windows\idmu 0.3 MB C:\windows\IME 136.8 MB ...... Regards, Michael B. Smith Consultant and Exchange MVP http://TheEssentialExchange.com From: John Hornbuckle [mailto:john.hornbuc...@taylor.k12.fl.us]<mailto:[mailto:john.hornbuc...@taylor.k12.fl.us]> Sent: Thursday, November 10, 2011 10:42 AM To: NT System Admin Issues Subject: Easy Way to View and Sort By Folder Sizes We use folder redirection here, and I'm trying to get a handle on which users have the most stuff. So we have something like: x:\path\user1 x:\path\user2 x:\path\user3 and so on. I'd like to look at x:\path and sort all the folders in it by size, displaying the size in MB. So the results would be something like: x:\path\user3 500 MB x:\path\user1 200 MB x:\path\user2 100 MB What's the easiest way to do this? I'll need specifics (e.g., don't tell me I can do it with PS unless you're gonna tell me precisely how). :) John Hornbuckle, MSMIS, PMP MIS Department Taylor County School District www.taylor.k12.fl.us ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com with the body: unsubscribe ntsysadmin