Oops, tested the previous script on a samba server. For some reason, testing the script on a Windows 2008 R2 domain resulted in an exception. So hereĀ“s the new script.
Check will output warnings in red to your screen, all the rest of the data will go to the logfile.
For best results, export to a .csv and open in excel. Then sort the first column.
Calling the script:
path_depth_analysis "G:mydirectory" >c:output.csv
The script:
function path_depth_analysis( $path ) { $items = get-childitem $path if (!($items.count) -eq 0) { foreach ($item in $items) { [int]$length_path = $path.length [int]$length_item = $item.name.length [int]$total_length = $length_path + $length_item if ($total_length -gt 240) { $item_name = $item.name write-host "! - $total_length - $path -> $item_name" -foreground RED } [string]$fullname = $item.FullName [string]$type = $item.GetType().Name if ($type -eq "FileInfo") { echo "$total_length;file;$fullname" } else { echo "$total_length;dir;$fullname" path_depth_analysis "$fullname" } } } }