Files
docs/scripts/Applications/Files and Collaboration/SMB/Report NTFS Permissions Across Shares.md
nicole 289769a601
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
Restructured Documentation
2026-09-05 14:08:43 -06:00

1.4 KiB

tags
tags
SMB
PowerShell
Permissions
Scripting

Purpose

This script will iterate over all network shares hosted by the computer it is running on, and will give recursive permissions to all folders, subfolders, and files, including hidden ones. It is very I/O intensive given it iterates recursively on every file/folder being shared.

$AllShares = Get-SMBShare | Where-Object {$_.Description -NotMatch "Default share|Remote Admin|Remote IPC|Printer Drivers"} | Select-Object -ExpandProperty Path
$Output = @()
ForEach ($SMBDirectory in $AllShares)
{
    $FolderPath = Get-ChildItem -Directory -Path $SMBDirectory -Recurse -Force
        ForEach ($Folder in $FolderPath) {
            $Acl = Get-Acl -Path $Folder.FullName
            ForEach ($Access in $Acl.Access)
            {
                $Properties = [ordered]@{'Folder Name'=$Folder.FullName;'Group/User'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights;'Inherited'=$Access.IsInherited}
                $Output += New-Object -TypeName PSObject -Property $Properties
            }
    }
}

$Output | Export-CSV -Path C:\SMB_REPORT.csv -NoTypeInformation -Append