File Share
How to Export Folder and Share Permissions to CSV via PowerShell

Auditing file share permissions is a critical task for security and compliance. While the Windows GUI allows you to view permissions one folder at a time, it is impossible to get a “big picture” view without automation.
By using the Get-Acl (Access Control List) cmdlet in PowerShell, you can recursively scan a directory and export every user and group permission to a clean CSV file for review in Excel.
The PowerShell Script
Save the following code as ExportFolderPermissions.ps1. Before running it, ensure you update the $FolderPath and the output path for the CSV file.
# Define the source path (Local folder or UNC Share)$FolderPath = dir -Directory -Path "\\ServerName\SharePath" -Recurse -Force$Report = @()Foreach ($Folder in $FolderPath) { # Fetch the Access Control List for the current folder $Acl = Get-Acl -Path $Folder.FullName foreach ($Access in $acl.Access) { # Create an ordered object for each permission entry $Properties = [ordered]@{ 'FolderName' = $Folder.FullName 'AD Group or User' = $Access.IdentityReference 'Permissions' = $Access.FileSystemRights 'Inherited' = $Access.IsInherited } $Report += New-Object -TypeName PSObject -Property $Properties }}# Export the final report to CSV$Report | Export-Csv -Path "C:\Temp\FolderPermissions.csv" -NoTypeInformation
How the Script Works
dir -Recurse: This command crawls through every subfolder within your target directory. The-Directoryswitch ensures we only look at folders, not individual files (which would make the report massive).Get-Acl: This retrieves the security descriptor for the folder, including who has access and what specific rights they have (Read, Write, Full Control, etc.).PSObject: We bundle the folder name, user identity, and rights into a custom object so thatExport-Csvcan easily format them into columns.IdentityReference: This shows you the exact AD Group or User name assigned to that folder.
💡 Lazy Admin Tips
- Run as Admin: You must run PowerShell as an Administrator and have “Read Permissions” rights on the target folders, or the script will return “Access Denied” errors.
- Performance: Scanning thousands of subfolders over a slow network link can take time. If you have a massive file server, run the script locally on the server itself rather than over a mapped drive.
- Filter Results: Once you open the CSV in Excel, use Filters to quickly find “Everyone” or “Anonymous” permissions, or to see which folders have inheritance disabled.
#PowerShell #SysAdmin #ActiveDirectory #SecurityAudit #WindowsServer #ITPro #Coding #LazyAdmin #CyberSecurity #TechTips
This entry was posted in Scripts, Windows and tagged Active Directory, CSV Export, File Share, Get-Acl, Permissions, PowerShell, Security Audit, SysAdmin Scripts, Windows Server.