Búsqueda de sitios web

SharePoint Online: establecer permisos de carpeta mediante PowerShell


Requisito: Cambiar los permisos de carpeta en SharePoint Online mediante PowerShell.

¿Cómo establecer permisos a nivel de carpeta en SharePoint Online?

Una de las tareas administrativas de SharePoint Online más comunes es administrar los permisos de las carpetas. En esta publicación de blog, le mostraremos cómo usar PowerShell para configurar permisos de carpeta para un sitio de SharePoint Online. También cubriremos cómo ajustar los permisos de las carpetas en SharePoint Online a través de la interfaz del navegador web. ¡Manténganse al tanto!

¿Cómo otorgar permiso único a una carpeta en SharePoint Online? Para administrar permisos de carpetas como Agregar o Restringir en SharePoint Online, siga estos pasos:

  1. Navegue a su biblioteca de documentos de SharePoint Online, donde se encuentra la carpeta de destino.
  2. Haga clic en "Administrar acceso" ya sea desde el panel de detalles o desde el menú contextual de la carpeta.

  3. En el panel Detalles, haga clic en el enlace "Avanzado". Esto lo llevará a la página "Permisos avanzados".

  4. Desde la cinta, haga clic en el botón "Dejar de heredar permisos" y confirme el mensaje (si la carpeta hereda permisos de su carpeta principal).
  5. Ahora obtendrá la lista de usuarios y grupos que ya tienen permisos en la carpeta. Cuando se rompe el permiso, SharePoint copia los permisos de su padre (¡Lista/biblioteca en nuestro caso!). Haga clic en el botón "Otorgar permiso" de la cinta para agregar usuarios a la carpeta.

  6. Ingrese los nombres de los usuarios y grupos a los que desea agregar permisos a la carpeta y seleccione el nivel de permiso apropiado haciendo clic en el enlace "Mostrar opciones" en la página para compartir. Haga clic en el botón "Compartir" para agregar permiso a la carpeta.

De manera similar, para restringir el acceso a la carpeta en SharePoint Online, seleccione todos los usuarios en la página de permisos de la carpeta y haga clic en "Eliminar permisos de usuario".

¡Está bien! Usemos PowerShell para agregar usuarios a una carpeta de SharePoint Online.

PowerShell para cambiar los permisos a nivel de carpeta SharePoint Online:

¿Se puede restringir el acceso a carpetas en SharePoint Online con PowerShell? ¡Por supuesto que sí! Agreguemos permiso a la carpeta de SharePoint Online usando PowerShell. Este script de PowerShell rompe los permisos de una carpeta y otorga permisos utilizando el modelo de objetos del lado del cliente (CSOM).


#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
}

Este PowerShell rompe la herencia de permisos de la carpeta y otorga acceso a un usuario y grupo. Aquí está el resultado del cambio en los permisos de la carpeta:

  • Para eliminar un usuario o grupo de una carpeta en SharePoint Online, use este script de PowerShell: ¿Cómo eliminar un usuario o grupo de los permisos de carpeta en SharePoint Online?
  • Si desea establecer permisos en todas las carpetas de una biblioteca de documentos de SharePoint Online, consulte: SharePoint Online: conceder permiso a cada carpeta de una biblioteca de documentos mediante PowerShell

PnP PowerShell para cambiar los permisos de carpeta en SharePoint Online

Para otorgar permiso a una carpeta en SharePoint Online, use este PnP PowerShell:


#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'

¿Cómo restringir el acceso a una carpeta en SharePoint Online?

También puede restringir el acceso a una carpeta de SharePoint Online mediante el cmdlet Set-PnPFolderPermission. Aquí hay un ejemplo:


#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"

¿Cómo cambiar los permisos de carpeta en SharePoint Online con PnP PowerShell?

De manera similar, para otorgar permiso a un grupo de SharePoint Online, use:


#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"

Este script rompe la herencia de permisos de la carpeta determinada y agrega o elimina permisos a la carpeta para el usuario o grupo determinado. De manera similar, puede establecer permisos para grupos AD usando su nombre como valor de parámetro para "usuario". Aquí hay otra publicación sobre SharePoint Online: PowerShell para obtener permisos de carpeta

Preguntas frecuentes:

¿Cómo restrinjo el acceso a una biblioteca de documentos en SharePoint Online?

Vaya a la biblioteca de documentos >> Haga clic en Configuración >> “Configuración de la biblioteca” >> Haga clic en “Permisos para esta biblioteca de documentos” >> Haga clic en “Dejar de heredar permisos”. Ahora puede agregar o eliminar usuarios y grupos a la biblioteca de documentos para restringir los permisos.
Más información: Establecer permisos para una biblioteca de documentos en SharePoint Online

¿Cómo puedo hacer que una carpeta de SharePoint Online sea accesible para todos?

¡Simplemente conceda acceso al grupo "Todos" en la carpeta! ¿Cómo otorgar acceso a todos en SharePoint Online?

Artículos relacionados