SharePoint Online: PowerShell'i kullanarak Klasör İzinlerini Ayarlama


Gereksinim: PowerShell'i kullanarak SharePoint Online'daki klasör izinlerini değiştirin.

SharePoint Online'da klasör düzeyinde izinler nasıl ayarlanır?

En yaygın SharePoint Online yönetim görevlerinden biri klasör izinlerini yönetmektir. Bu blog yazısında, bir SharePoint Online sitesinin klasör izinlerini ayarlamak için PowerShell'i nasıl kullanacağınızı göstereceğiz. Ayrıca SharePoint Online'daki klasörlerin izinlerinin web tarayıcısı arayüzü aracılığıyla nasıl ayarlanacağını da ele alacağız. Bizi izlemeye devam edin!

SharePoint Online'da bir klasöre benzersiz izin nasıl verilir? SharePoint Online'da Ekle veya Kısıtla gibi klasör izinlerini yönetmek için şu adımları izleyin:

  1. Hedef klasörün bulunduğu SharePoint Online belge kitaplığınıza gidin.
  2. Ayrıntılar bölmesinden veya klasörün içerik menüsünden "Erişimi yönet"i tıklayın.

  3. Ayrıntılar bölmesinde “Gelişmiş” bağlantısını tıklayın. Bu sizi “Gelişmiş İzinler” sayfasına götürür.

  4. Şeritten “İzinleri Devralmayı Durdur” düğmesine tıklayın ve istemi onaylayın (Klasör izinleri üst öğesinden devralıyorsa).
  5. Artık klasörde zaten izinleri olan kullanıcıların ve grupların listesini alacaksınız. İzni bozduğunuzda, SharePoint izinleri üst öğesinden kopyalar (bizim durumumuzda liste/kütüphane!). Kullanıcıları klasöre eklemek için şeritteki “İzin Ver” düğmesine tıklayın.

  6. Klasöre izin eklemek istediğiniz kullanıcı ve grupların adlarını girin ve paylaşım sayfasındaki “Seçenekleri Göster” bağlantısına tıklayarak uygun izin düzeyini seçin. Klasöre izin eklemek için “Paylaş” düğmesine tıklayın.

Benzer şekilde, SharePoint Online'da klasöre erişimi kısıtlamak için klasör izinleri sayfasında tüm kullanıcıları seçin ve "Kullanıcı İzinlerini Kaldır"a tıklayın.

Peki! Kullanıcıları bir SharePoint Online klasörüne eklemek için PowerShell'i kullanalım.

Klasör düzeyindeki izinleri SharePoint Online değiştirmek için PowerShell:

PowerShell ile SharePoint Online'daki klasörlere erişimi kısıtlayabilir misiniz? Tabii ki evet! PowerShell kullanarak SharePoint Online klasörüne izin ekleyelim. Bu PowerShell betiği, bir klasörün izinlerini keser ve istemci tarafı nesne modelini (CSOM) kullanarak izinler verir.


#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"
 
#Variables
$SiteURL="https://crescent.sharepoint.com" #Or https://crescent.sharepoint.com/sites/Marketing
$FolderURL="/Project Documents/Active" #Or /sites/Marketing/Project Documents/Active - Server Relative URL of the Folder!
$GroupName="Team Site Members"
$UserAccount="Salaudeen@crescent.com"
$PermissionLevel="Edit"

Try {
    $Cred= Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials
    $Web = $Ctx.web

    #Get the Folder
    $Folder = $Web.GetFolderByServerRelativeUrl($FolderURL)
    $Ctx.Load($Folder)
    $Ctx.ExecuteQuery()
    
    #Break Permission inheritence of the folder - Keep all existing folder permissions & keep Item level permissions
    $Folder.ListItemAllFields.BreakRoleInheritance($False,$True)
    $Ctx.ExecuteQuery()
    Write-host -f Yellow "Folder's Permission inheritance broken..."
     
    #Get the SharePoint Group & User
    $Group =$Web.SiteGroups.GetByName($GroupName)
    $User = $Web.EnsureUser($UserAccount)
    $Ctx.load($Group)
    $Ctx.load($User)
    $Ctx.ExecuteQuery()

    #sharepoint online powershell set permissions on folder
    #Get the role required
    $Role = $web.RoleDefinitions.GetByName($PermissionLevel)
    $RoleDB = New-Object Microsoft.SharePoint.Client.RoleDefinitionBindingCollection($Ctx)
    $RoleDB.Add($Role)
         
    #add sharepoint online group to folder using powershell
    $GroupPermissions = $Folder.ListItemAllFields.RoleAssignments.Add($Group,$RoleDB)

    #powershell add user to sharepoint online folder
    $UserPermissions = $Folder.ListItemAllFields.RoleAssignments.Add($User,$RoleDB)
    $Folder.Update()
    $Ctx.ExecuteQuery()
    
    Write-host "Permission Granted Successfully!" -ForegroundColor Green  
}
Catch {
    write-host -f Red "Error Granting permission to  Folder!" $_.Exception.Message
}

Bu PowerShell, klasörün izin devralmasını keser ve bir kullanıcıya ve gruba erişim izni verir. Klasör izinlerindeki değişikliğin sonucu:

  • SharePoint Online'da Klasörden Bir Kullanıcıyı veya Grubu Kaldırmak için Bu PowerShell betiğini kullanın: SharePoint Online'da Klasör İzinlerinden Bir Kullanıcı veya Grup Nasıl Kaldırılır?
  • SharePoint Online belge kitaplığındaki tüm klasörlere ilişkin izinleri ayarlamak istiyorsanız şuraya bakın: SharePoint Online: PowerShell kullanarak Belge Kitaplığındaki Her Klasöre İzin Verme

PnP PowerShell, SharePoint Online'da Klasör İzinlerini Değiştirecek

SharePoint Online'da bir klasöre izin vermek için bu PnP PowerShell'i kullanın:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName="Documents"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2019"
$UserAccount = "Salaudeen@crescent.com"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get the Folder from URL
$Folder = Get-PnPFolder -Url $FolderServerRelativeURL
    
#Grant Permission to a Folder
Set-PnPListItemPermission -List $ListName -Identity $Folder.ListItemAllFields -User $UserAccount -AddRole 'Contribute'

SharePoint Online'da bir klasöre erişim nasıl kısıtlanır?

Set-PnPFolderPermission cmdlet'ini kullanarak bir SharePoint Online klasörüne erişimi de kısıtlayabilirsiniz. İşte bir örnek:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName ="Branding"
$FolderServerRelativeURL = "/Sites/Marketing/Branding/2020"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#PowerShell to add user to sharepoint online folder
Set-PnPfolderPermission -List $ListName -identity $FolderServerRelativeURL -User "salaudeen@crescent.com" -AddRole "Edit"

#To remove user, use: Set-PnPfolderPermission -List $ListName -identity $FolderSiteRelativePath -User "salaudeen@crescent.onmicrosoft.com" -RemoveRole "Edit"

PnP PowerShell ile SharePoint Online'da klasör izinleri nasıl değiştirilir?

Benzer şekilde, bir SharePoint Online grubuna izin vermek için şunu kullanın:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName ="Branding"
$FolderServerRelativeURL = "/Sites/Marketing/Branding/Active"
  
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#Grant folder permissions to SharePoint Group
Set-PnPfolderPermission -List $ListName -identity $FolderServerRelativeURL -AddRole "Edit" -Group "Marketing Members"

Bu komut dosyası, verilen klasörün izin devralmasını keser ve klasöre verilen kullanıcı veya gruba izin ekler veya kaldırır. Benzer şekilde, AD Gruplarının izinlerini, adını parametre değeri olarak “kullanıcı” olarak kullanarak ayarlayabilirsiniz. İşte SharePoint Online'da başka bir gönderi: Klasör İzinlerini Almak için PowerShell

Sıkça Sorulan Sorular:

SharePoint Online'da bir belge kitaplığına erişimi nasıl kısıtlarım?

Belge kitaplığına göz atın >> Ayarlar >> “Kütüphane Ayarları”na tıklayın >> “Bu belge kitaplığı için izinler”e tıklayın >> “İzinleri Devralmayı Durdur”a tıklayın. Artık izinleri kısıtlamak için belge kitaplığına kullanıcı ve grup ekleyebilir veya kaldırabilirsiniz.
Daha fazla bilgi: SharePoint Online'da Belge Kitaplığı için İzinleri Ayarlama

Bir SharePoint Online klasörünü herkes için erişilebilir hale nasıl getirebilirim?

Klasördeki “Herkes” grubuna erişim vermeniz yeterli! SharePoint Online'da Herkese Erişim Nasıl Verilir?

İlgili makaleler