Búsqueda de sitios web

SharePoint Online: conceder permiso a una lista o biblioteca mediante PowerShell


Requisito: Proporcionar permiso a una biblioteca de documentos en SharePoint Online.

¿Cómo compartir una biblioteca de documentos en SharePoint Online?

En ocasiones, es posible que desee otorgar permisos a nivel de lista o biblioteca a usuarios y grupos en SharePoint Online. Por ejemplo, es posible que desee proporcionar acceso de lectura a nivel de sitio y derechos de edición a nivel de lista individual. Entonces, para otorgar permisos a listas y bibliotecas, como primer paso, debemos dejar de heredar permisos de su padre y luego aplicar permisos de seguridad únicos a cualquier nivel debajo de la colección de sitios, como Subsitio, Lista, Biblioteca o elementos de lista.

¿Cómo otorgar acceso a una lista o biblioteca en SharePoint Online?

¿Cómo comparto una biblioteca de documentos en SharePoint Online? A continuación se explica cómo otorgar permiso a una biblioteca de documentos en SharePoint Online:

  1. Vaya a la lista de destino o a la configuración de la biblioteca (desde la página de la biblioteca, haga clic en la pestaña Biblioteca en la cinta >> Seleccione la configuración de la lista. Si la interfaz de usuario moderna está habilitada, diríjase a Conexión del sitio y haga clic en configuración en el menú contextual de la lista)
  2. En la página Configuración de lista, haga clic en el enlace "Permisos para esta lista" en el grupo de permisos y administración.
  3. En la página de permisos, si la lista hereda permisos del padre, tenemos que romper la herencia de permisos. Haga clic en el botón "Dejar de heredar permisos".
  4. Ahora, desde la cinta, haga clic en el botón "Otorgar permisos" del grupo Conceder.
  5. Ingrese nombres o direcciones de correo electrónico en el cuadro de diálogo Compartir en el cuadro de texto designado.

  6. Haga clic en el botón Mostrar opciones y especifique la opción de invitación por correo electrónico y el nivel de permiso apropiado, como editar.
  7. Haga clic en Compartir.

Esto proporciona permiso a un usuario determinado en la lista o biblioteca seleccionada. El mismo procedimiento se aplica para otorgar acceso a listas, bibliotecas y elementos individuales en SharePoint Online.

SharePoint Online: PowerShell para otorgar permisos de lista o biblioteca a un usuario o grupo

Los permisos de lista se pueden manipular con PowerShell. Este es el script de PowerShell típico para establecer permisos de SharePoint Online: Este script otorga permiso a un grupo de SharePoint existente para la lista proporcionada.


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

#Configuration Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/Projects/"
$ListName="Project Documents"
$GroupName="Project Members"
$PermissionLevel="Read"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Cred
  
    #Get the web and List
    $Web=$Ctx.Web
    $List=$web.Lists.GetByTitle($ListName)
    
    #Break Permission inheritence - keep existing list permissions & Item level permissions
    $List.BreakRoleInheritance($True,$True)
    $Ctx.ExecuteQuery()
    Write-host -f Yellow "Permission inheritance broken..."
    
    #Get the group or user
    $Group =$Web.SiteGroups.GetByName($GroupName) #For User: $Web.EnsureUser('salaudeen@crescent.com')
    $Ctx.load($Group)
    $Ctx.ExecuteQuery()

    #Grant permission to Group     
    #Get the role required
    $Role = $web.RoleDefinitions.GetByName($PermissionLevel)
    $RoleDB = New-Object Microsoft.SharePoint.Client.RoleDefinitionBindingCollection($Ctx)
    $RoleDB.Add($Role)
        
    #Assign list permissions to the group
    $Permissions = $List.RoleAssignments.Add($Group,$RoleDB)
    $List.Update()
    $Ctx.ExecuteQuery()
    Write-Host "Added $PermissionLevel permission to $GroupName group in $ListName list. " -foregroundcolor Green
}
Catch {
    write-host -f Red "Error Granting Permissions!" $_.Exception.Message
}  

También podemos configurar permisos de la biblioteca de documentos en SharePoint Online usando PnP PowerShell. Si desea otorgar permiso a un nuevo grupo AD/grupo de Office 365, use lo siguiente:


#Config Variables
$GroupName ="Global@crescent.com" #Or Group ID

#Resolve the Group
$Group = $Web.EnsureUser($GroupName)
$Ctx.load($Group)
$Ctx.ExecuteQuery()

SharePoint Online: agregar permiso a la lista mediante PnP PowerShell

Usemos el cmdlet PnP PowerShell Set-PnPListPermission para agregar permisos a la lista de SharePoint Online.


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/Marketing"
$ListName ="Projects"
$UserID="Peter@TheCrescentTech.com"
$GroupName = "Marketing Members"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Break Permission Inheritance of the List
Set-PnPList -Identity $ListName -BreakRoleInheritance -CopyRoleAssignments

#Grant permission on List to User
Set-PnPListPermission -Identity $ListName -AddRole "Edit" -User $UserID

#Grant permission on list to Group
Set-PnPListPermission -Identity $ListName -AddRole "Read" -Group $GroupName

De manera similar, puedes usar este PowerShell para asignar permisos a un grupo de la lista:


Set-PnPGroupPermissions -Identity $GroupName -List ListName -AddRole Contribute

Para eliminar un usuario o grupo de los permisos de la lista: SharePoint Online: eliminar usuarios o grupos de los permisos de la lista mediante PowerShell

Conceder acceso a la lista a usuarios externos que utilizan Powershell

Utilice el script de PowerShell para establecer permisos en una lista o biblioteca de documentos de SharePoint Online para usuarios externos. Asegúrese de tener habilitado el uso compartido externo en los niveles de inquilino y colección de sitios.


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/retail"
$ListName ="Invoices"
$UserID="Mikewagan@gmail.com"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#Break Permission Inheritance of the List
Set-PnPList -Identity $ListName -BreakRoleInheritance -CopyRoleAssignments
 
#Grant permission on List to External User
Set-PnPListPermission -Identity $ListName -AddRole "Edit" -User $UserID

Preguntas frecuentes:

¿Cómo dar permiso a un subsitio en SharePoint Online?

Romper la herencia de permisos del subsitio si hereda permisos de su sitio principal. Una vez hecho esto, puede otorgar acceso al subsitio desde: Configuración >> enlace Permisos del sitio. Más información: ¿Cómo otorgar acceso a un subsitio en SharePoint Online?

¿Cómo doy acceso al sitio de SharePoint Online?

Navegue a su sitio de SharePoint Online >> haga clic en el engranaje “Configuración” >> Haga clic en “Permisos del sitio” >> Permisos avanzados. En la página de permisos avanzados, seleccione el grupo relevante, como " Propietarios", haga clic en "Nuevo" >> Agregar usuarios >> Ingrese los nombres de usuario y haga clic en "Compartir".
Más información: Conceder acceso al sitio de SharePoint Online

Artículos relacionados