Forum Discussion
Christophe Humbert
Dec 27, 2017Iron Contributor
Get Site Permissions with PnP PowerShell
How can I retrieve site permissions on a site or subsite using PnP PowerShell?
Example: https://$orgName.sharepoint.com/sites/IT/Atlas
Via the UI: Site settings > Site Permissions
W...
- Jan 04, 2018The following worked for me:
$cred = get-credential
Connect-PnPOnline -Url "https://$orgname.sharepoint.com" -Credentials $cred
$web = Get-PnPWeb -Includes RoleAssignments
foreach($ra in $web.RoleAssignments) {
$member = $ra.Member
$loginName = get-pnpproperty -ClientObject $member -Property LoginName
$rolebindings = get-pnpproperty -ClientObject $ra -Property RoleDefinitionBindings
write-host "$($loginName) - $($rolebindings.Name)"
write-host
}
Christophe Humbert
Jan 04, 2018Iron Contributor
Thanks all for the replies.
I am marking René's reply as best response as it uses PnP, but the other CSOM worked as well.
For the record, below the code I came up with just before René posted his reply (I used join because a member might be assigned multiple roles):
$web= Get-PnPWeb -Includes RoleAssignments
$ctx= Get-PnPContext
foreach ($role in $web.RoleAssignments) {
$ctx.Load($role.RoleDefinitionBindings)
$ctx.Load($role.Member)
$ctx.ExecuteQuery()
$role.Member.Title
$role.RoleDefinitionBindings.Name -join "; "
}