This is A powershell command to export all permissions from a SHarePoint site and subsites to CSV using PowerShell. Make sure to replace the site URL and the destination path (highlighted below)
Source: https://www.netwrix.com/how_to_get_sharepoint_permissions_report.html
Add-PSSnapin Microsoft.SharePoint.PowerShell
[void][System.Reflection.Assembly]::LoadWithPartialName
("Microsoft.SharePoint")
$SPSiteUrl = "http://sharepoint/sites/ent"
$SPSite = New-Object Microsoft.SharePoint.SPSite($SPSiteUrl);
$ExportFile = "C:\root\Permissions.csv"
"Web Title,Web URL,List Title,User or Group,Role,Inherited" | out-file $ExportFile
foreach ($WebPath in $SPSite.AllWebs)
{
if ($WebPath.HasUniqueRoleAssignments)
{
$SPRoles = $WebPath.RoleAssignments;
foreach ($SPRole in $SPRoles)
{
foreach ($SPRoleDefinition in $SPRole.RoleDefinitionBindings)
{
$WebPath.Title + "," + $WebPath.Url + "," + "N/A" + "," +
$SPRole.Member.Name + "," + $SPRoleDefinition.Name + "," +
$WebPath.HasUniqueRoleAssignments | out-file $ExportFile -append
}
}
}
foreach ($List in $WebPath.Lists)
{
if ($List.HasUniqueRoleAssignments)
{
$SPRoles = $List.RoleAssignments;
foreach ($SPRole in $SPRoles)
{
foreach ($SPRoleDefinition in $SPRole.RoleDefinitionBindings)
{
$WebPath.Title + "," + $WebPath.Url + "," + $List.Title + "," +
$SPRole.Member.Name + "," + $SPRoleDefinition.Name | out-file $ExportFile -append
}
}
}
}
}
$SPSite.Dispose();
- Home
- Identity, Security, Access
- _Active Directory
- _BitLocker
- _Group Policy
- _SSL Certificates
- Endpoint Management
- _DNS
- _SCCM
- _SCSM
- _Windows
- _Windows Server
- Data, Messaging
- _Exchange
- _SQL Server
- _DocLink
- M365
- _Bookings
- _ClipChamp
- _Engage
- _Forms
- _Lists
- _Loop
- _M365
- _OneDrive
- _OneNote
- _Outlook
- _SharePoint
- _Teams
- _To Do
- _Visio
- _Viva
- _Whiteboard
- Development
- _Javascript
- _Power Apps
- _Power Automate
- _Power BI
- _PowerShell
- Artificial Intelligence
- _AI
- _Copilot

