1

I have looked at all the options in Central Admin. I need a way to search for effective permissions for a given user for all sites and lists. There is just a single Publishing site collection.

Is this possible via the Central Admin GUI (maybe I missed something)? Or is there a PowerShell way of doing this?

2

there is no out of box way to get this via Central admin.
you have to use 3rd party tool or use powershell script.
I have this very good script(from technet gallery), which will find all SharePoint sites and lists where a particular user has access rights.
SharePoint Permission Report: Check Access Rights for a Specific User

2

I built this PS script. This may help. It outputs to CSV.

function getUserGroups()
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
$farm = [Microsoft.SharePoint.Administration.SPFarm]::Local
$websvcs = $farm.Services | where -FilterScript {$_.GetType() -eq     [Microsoft.SharePoint.Administration.SPWebService]}

foreach ($websvc in $websvcs)
{
    foreach ($webapp in $websvc.WebApplications)
    {
        #this will parse through all web applications
        foreach($site in $webapp.Sites)
        {
            #this will parse through all sites
            foreach($web in $site.AllWebs)
            {       
                foreach($list in $web.lists)
                {
                    #this will parse through all lists within subweb
                    $unique = $list.hasuniqueroleassignments
                    if(($list.permissions -ne $null) -and ($unique -eq "True"))
                    {
                        foreach($listRoleAssignment in $list.RoleAssignments)
                        {                                       
                            foreach ($listRoleDef in $listRoleAssignment.RoleDefinitionBindings)
                            {
                                $principal = $listRoleAssignment.Member
                                if ($principal.GetType() -eq [Microsoft.SharePoint.SPGroup])
                                {
                                    $data = @{
                                        "Site Collection" = $site.Url
                                        "Role" = $listRoleDef.Name 
                                        "Web Title" = "List or Library - " + $list.Title
                                        "URL" = $web.URL
                                        "Group Name" = $principal
                                        "Group Description" = $principal.Description
                                    }
                                    #save the data into new object
                                    New-Object PSObject -Property $data 
                                }
                                $unique = $null
                                $principal = $null
                            }
                        }
                    }
                }          
                foreach ($roleAssignment in $web.RoleAssignments)
                {
                    #$roleGroup = [Microsoft.SharePoint.SPGroup]$principal
                    foreach($roleDef in $roleAssignment.RoleDefinitionBindings)
                    {
                        $principal = $roleAssignment.Member
                        if ($principal.GetType() -eq [Microsoft.SharePoint.SPGroup])
                        {
                            #gather data about each group
                            $data = @{
                                "Site Collection" = $site.Url
                                "Role" = $roleDef.Name
                                "Web Title" = $web.Title
                                "URL" = $web.URL
                                "Group Name" = $principal
                                "Group Description" = $principal.Description
                            }
                            #save the data into new object
                            New-Object PSObject -Property $data 
                        }
                        $pincipal = $null
                    }
                }
            }
            $web.Dispose()
        }
        $site.Dispose()
    }
}
}
function go()
{
write-host "Starting Operation"
getUserGroups | Export-Csv -NoTypeInformation -Path C:\Scripts\groups.csv
write-host "Operation Complete"
}
clear-host
go

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.