Controlling Folder Depth when Exporting Folder ACL to Excel via Powershell



  • The below script finds the permissions for the directory, but goes all the way through the entire file structure.

    $FolderPath = dir -Directory -Path "P:\Public" -Recurse -Force
    $Report = @()
    Foreach ($Folder in $FolderPath) {
        $Acl = Get-Acl -Path $Folder.FullName
        foreach ($Access in $acl.Access)
            {
                $Properties = [ordered]@{'FolderName'=$Folder.FullName;'AD
    Group or
    User'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights;'Inherited'=$Access.IsInherited}
                $Report += New-Object -TypeName PSObject -Property $Properties
            }
    }
    $Report | Export-Csv -path "C:\export\permissions.csv"
    

    I need to go only two levels deep. I read that you can use Get-ChildItemToDepth but I am having trouble with the syntax if anyone can help.



  • Try this instead:

    $FolderPath = Get-ChildItem -Recurse -Depth 2 -Path "P:\Public" -Force

    Where -Depth is the how many levels deep you want to go.

    If you want to see what a cmdlet can do, you can use:

    Get-Help Get-ChildItem -Full