SharePoint Online: Liste İzinlerini Almak için PowerShell


Gereksinim: PowerShell'i kullanarak SharePoint Online'da Liste İzinleri alın.

SharePoint Online'da Liste İzinleri Nasıl Alınır?

SharePoint yöneticisiyseniz, er ya da geç SharePoint Online'da liste izinlerini almanız gerekecektir. İşlem karmaşık değildir ancak izlemeniz gereken birkaç adım vardır. Bu blog yazısında, listelerde veya kitaplıklarda kullanıcıların izin düzeylerini alma ve görüntüleme süreci boyunca size adım adım yol göstereceğim. Ayrıca PowerShell kullanarak SharePoint Online'da liste izinlerinin nasıl alınacağını da göreceğiz. Başlayalım!

SharePoint Online listesine uygulanan izinleri görüntülemek için şu adımları izleyin:

  1. SharePoint Online listenize gidin >> Ayarlar dişlisine tıklayın >> Ayarları listele.
  2. Liste ayarları sayfasındaki “Bu Listedeki İzinler” bağlantısını tıklayın.
  3. Bu sayfa size belirli bir listedeki tüm izinleri sağlar.

Ancak, SharePoint Online kullanıcı arayüzündeki listelerden ve kitaplıklardan izinleri dışarı aktarmak karmaşık ve zaman alıcı bir süreç olabilir. Öyleyse, SharePoint Online'da liste izinlerini almak için PowerShell'i kullanarak bu görevi basitleştirelim.

Liste İzinlerini Almak için SharePoint Çevrimiçi PowerShell

Neyse ki, SharePoint Online'da çeşitli düzeylerde izin raporları oluşturmak için PowerShell'imiz var: PowerShell kullanarak SharePoint Online'da İzin Raporları. İşte izinleri listelemek ve SharePoint Online'da CSV'ye aktarmak için PowerShell:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
  
#Function to Get List Permissions
Function Get-SPOListPermission([String]$SiteURL, [String]$ListName)
{
    Try{
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
      
        #Get the List
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $Ctx.ExecuteQuery()
 
        #Get permissions assigned to the List
        $RoleAssignments = $List.RoleAssignments
        $Ctx.Load($RoleAssignments)
        $Ctx.ExecuteQuery()
 
        #Loop through each permission assigned and extract details
        $PermissionCollection = @()
        Foreach($RoleAssignment in $RoleAssignments)
        { 
            $Ctx.Load($RoleAssignment.Member)
            $Ctx.executeQuery()
 
            #Get the User Type
            $PermissionType = $RoleAssignment.Member.PrincipalType
 
            #Get the Permission Levels assigned
            $Ctx.Load($RoleAssignment.RoleDefinitionBindings)
            $Ctx.ExecuteQuery()
            $PermissionLevels = ($RoleAssignment.RoleDefinitionBindings | Select -ExpandProperty Name) -join ","
             
            #Get the User/Group Name
            $Name = $RoleAssignment.Member.Title # $RoleAssignment.Member.LoginName
 
            #Add the Data to Object
            $Permissions = New-Object PSObject
            $Permissions | Add-Member NoteProperty Name($Name)
            $Permissions | Add-Member NoteProperty Type($PermissionType)
            $Permissions | Add-Member NoteProperty PermissionLevels($PermissionLevels)
            $PermissionCollection += $Permissions
        }
        Return $PermissionCollection
    }
    Catch {
    write-host -f Red "Error Getting List Permissions!" $_.Exception.Message
    }
}
  
#Set Config Parameters
$SiteURL="https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"
$ReportFile = "C:\Temp\ListPermissions.csv"
  
#Get Credentials to connect
$Cred= Get-Credential
  
#Call the function to Get List Permissions
$ListPermissions = Get-SPOListPermission $SiteURL $ListName

#Get List Permissions
$ListPermissions

#Export List Permissions to CSV File
$ListPermissions | Export-CSV $ReportFile -NoTypeInformation

Dışa aktarılan CSV dosyası şuna benzer:

Özetle, SharePoint Online'da liste izinleri almak için PowerShell'i kullanmak, SharePoint ortamınızı yönetmek için güçlü bir araç olabilir. Bu makalede sağlanan komut dosyasını kullanarak, SharePoint listelerinizdeki izinleri hızlı ve kolay bir şekilde dışarı aktarabilir, böylece güvenli ve düzenli bir ortam sağlamanıza yardımcı olabilirsiniz.

Ayrıca PnP PowerShell ile liste veya belge kitaplığı izinlerini bir CSV raporuna aktarabiliriz: SharePoint Çevrimiçi Belge Kitaplığı İzinlerini Alın ve PnP PowerShell kullanarak CSV'ye Aktarın

İlgili makaleler