Forum Discussion
Zilverflame
Nov 18, 2016Copper Contributor
SharePoint Online overview of user permissions
Hi group, We have a site collection with several subsites. From the start we have been using security groups to control user permissions. As time has passed the number of subsites have exploded and we...
- Nov 25, 2016
Hi,
Please check the below updated script, this should work with the latest PnP module.
function connect-site($webs,$creds){ Connect-PNPonline -Url $webs -Credentials $cred } function get-sitepermission($web,$cred){ $rec=@() connect-site -webs $web -creds $cred if($web -eq $parentsitename) { #Write-Host "Parent site permission" $web $Pgroups=Get-PNPGroup foreach($Pgroup in $Pgroups) { $DLGP = "" | Select "SiteUrl","GroupName","Permission" $pPerm=Get-PNPGroupPermissions -Identity $Pgroup.loginname -ErrorAction SilentlyContinue |Where-Object {$_.Hidden -like "False"} if($pPerm -ne $null) { $DLGP.SiteUrl=$web $DLGP.GroupName=$Pgroup.loginname $DLGP.Permission=$pPerm.Name $rec+= $DLGP } } } $subwebs=Get-PNPSubWebs foreach($subweb in $subwebs) { connect-site -webs $subweb.Url -creds $cred #Write-Host $subweb.Url $groups=Get-PNPGroup foreach($group in $groups) { $DLGP = "" | Select "SiteUrl","GroupName","Permission" $sPerm=Get-PNPGroupPermissions -Identity $group.loginname -ErrorAction SilentlyContinue |Where-Object {$_.Hidden -like "False"} if ($sPerm -ne $null) { $DLGP.SiteUrl=$subweb.Url $DLGP.GroupName=$group.loginname $DLGP.Permission=$sPerm.Name $rec+=$DLGP } } Write-Host $subweb.Url "permission fetched!" get-sitepermission -web $subweb.Url -cred $cred } return $rec } #Input parameter $cred=Get-Credential $parentsitename="https://<Tenantname>.sharepoint.com/sites/contosobeta" $outputPath= "c:\csv\AllSubsitegrouppermission.csv" $Sitepermission=get-sitepermission -web $parentsitename -cred $cred $Sitepermission |Export-Csv -Path $outputPath
Zilverflame
Nov 18, 2016Copper Contributor
Thanks for your answer Andrew. The script collects info about all site collections, but not the subsites... :) Thanks anyway.
Nov 18, 2016
As an alternative to PowerShell, there are some governance tools that could help you on this