$path = Read-Host "Enter the path you wish to check" [Array] $list = "Path Access Entity Mode Rights" [Array] $folders = Get-ChildItem -path $path -recurse | Where {$_.PSIsContainer} ForEach ($folder in [Array] $folders) { [Array] $PSPath += (Convert-Path $folder.pspath) } #Initialize While Loop, set $p to Array Size - 1 $i=0 $p = $PSPath.Count - 1 While ($i -le $P) { [Array] $acls += Get-Acl -Path $PSPath[$i] | Format-List $i += 1 } #Reset i to 0 $i=0 Foreach($acl in $acls) { ForEach($access in $acl.Access) { $path = $PSPath[$i] ForEach($value in $access.IdentityReference.Value) { $list += ("$Path $Value") } #end ForEach } #end ForEach $list += ("-------------------------------------- --------------------------------") $i+=1 } #end ForEach $list | format-table | Out-File "c:\Users\$env:username\Documents\folderperms.csv" Write-Host "File has been saved to c:\Users\$env:username\Documents\folderperms.csv"