AnswerBun.com

Powershell CSOM to retrieve Permission levels tagged for the group

SharePoint Asked by Suresh Bolineni on December 12, 2021

Can any one code me to retrieve the permission levels tagged for the group using Powershell CSOM.Please tell me the property
her is my code sample

Add-Type -Path "C:\Microsoft.SharePoint.Client.dll"   
Add-Type -Path "C:\Microsoft.SharePoint.Client.Runtime.dll"      

    #SPO Client Object Model Context 
    $spoCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteUrl) 
    $spoCredentials = New-Object System.Net.NetworkCredential($sUserName, $sPassword)   
    $spoCtx.Credentials = $spoCredentials       

    $web = $spoCtx.Web
    $spGroups =$web.SiteGroups
    $spoCtx.Load($spGroups)
    $spoCtx.ExecuteQuery() 

    foreach($group in $spGroups)
    {
        #Write-Host " Group Name = $($group.Title)"

    }

One Answer

I have found the solution to retrieve the Permission levels using RoleAssignments and RoleDefinition here is my code

Function Get-Permissions([Microsoft.SharePoint.Client.ClientContext]$Object ,[Microsoft.SharePoint.Client.RoleAssignmentCollection]$RoleAssignmentsCol)
{       
        [email protected]()
        $spoCtx = $Object

        foreach($RoleAssignment in $RoleAssignmentsCol)
        {
            $RoleDefinitionBindings = $RoleAssignment.RoleDefinitionBindings
            $RoleAssignmentMember = $RoleAssignment.Member

            $spoCtx.Load($RoleDefinitionBindings)
            $spoCtx.Load($RoleAssignmentMember)
            $spoCtx.ExecuteQuery()


            foreach ($RoleDefinition in  $RoleDefinitionBindings)
            {
                $GroupProperty = New-Object System.Object
                $GroupProperty | Add-Member -type NoteProperty -name LoginName -value $RoleAssignmentMember.LoginName
                $GroupProperty | Add-Member -type NoteProperty -name PrincipalType -value ([Microsoft.SharePoint.Client.Principal]$RoleAssignmentMember).PrincipalType
                $GroupProperty | Add-Member -type NoteProperty -name PermissionLevel -value  $RoleDefinition.Name
                $spGroups += $GroupProperty
            }
        }

        return $spGroups
}


function GetSitePermisions
{
 try 
    {
        Add-Type -Path "D:Microsoft.SharePoint.Client.dll"   
        Add-Type -Path "D:Microsoft.SharePoint.Client.Runtime.dll"      

        $sSiteUrl = Read-Host -Prompt "Enter Site Collection URL (eg: http://Server:port/Sites/Dev)" 
        $sUserName = Read-Host -Prompt "Enter User Name(eg: domainusername)" 
        $sPassword = Read-Host -Prompt "Enter your password" -AsSecureString 

        #SPO Client Object Model Context 
        $spoCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteUrl) 
        $spoCredentials = New-Object System.Net.NetworkCredential($sUserName, $sPassword)   
        $spoCtx.Credentials = $spoCredentials       

        $web = $spoCtx.Web
        $RoleAssignmentsCol = $web.RoleAssignments      
        $spoCtx.Load($web)

        $spoCtx.Load($RoleAssignmentsCol)
        $spoCtx.ExecuteQuery() 

        $GrouppermissionLevel = @()

        Write-Host "getting Permission Level details"
        $spGroups = Get-Permissions $spoCtx $RoleAssignmentsCol

        foreach($group in $spGroups)
        {
            $GrouppermissionLevel = New-Object -TypeName PSObject -Property @{
                                    GroupName = $group.LoginName
                                    PrincipalType= $group.PrincipalType
                                    PermissionLevel = $group.PermissionLevel
                                    } | Select  GroupName,PrincipalType,PermissionLevel

            $GrouppermissionLevel| Export-CSV ("D:GroupPermissionLevel.csv") -NoTypeInformation -Append  
        }
    } 
    catch [System.Exception] 
    { 
        Write-Host -ForegroundColor Red $_.Exception.ToString()    
    }  
}

GetSitePermisions ;

Answered by Suresh Bolineni on December 12, 2021

Add your own answers!

Related Questions

Can I change favicon without modifying the master page?

3  Asked on January 4, 2022 by default_noob_network

   

Add link to button in infopath

1  Asked on January 4, 2022 by j-choe

       

Get Page Field Values with javascript

2  Asked on January 2, 2022 by rothrock

       

I’ve sharepoint 2013 farm last updated June 2014

1  Asked on December 31, 2021 by ahmed-alsharkawy

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP