Búsqueda de sitios web

SharePoint Online: cambiar los permisos de usuario mediante PowerShell


Requisito: Editar permisos de usuario en SharePoint Online.

¿Cómo cambiar los permisos de usuario en el sitio de SharePoint Online?

Quiere cambiar el permiso del usuario en un sitio/biblioteca/elemento en particular en SharePoint Online. Por ejemplo, una vez que se ha completado un proyecto en particular, ya no desea que el miembro del equipo agregue o edite los documentos de respaldo del proyecto, ¡sino que solo los vea! SharePoint proporciona una manera flexible de administrar los cambios de permisos de usuarios o grupos. A continuación se explica cómo actualizar los permisos de usuario en SharePoint Online.

  1. Para editar los permisos del sitio para un usuario, navegue hasta el sitio de SharePoint Online al que el usuario tiene acceso. Haga clic en el engranaje de Configuración y luego en Configuración del sitio.
  2. En la página Configuración del sitio, haga clic en el enlace "Permisos del sitio" en el grupo Usuarios y permisos.
  3. En la página de permisos del sitio, seleccione la casilla de verificación junto al usuario cuyos permisos desea editar. Haga clic en el botón "Editar permisos de usuario" de la cinta.

  4. Seleccione y desmarque las casillas de permisos relevantes. En este caso, debes desmarcar “Editar” y marcar “Leer”. Haga clic en Aceptar para guardar los cambios.

Los permisos de SharePoint Online tendrán de forma predeterminada el nivel más alto de seguridad. P.ej. Si un usuario tiene acceso tanto de “Editar” como de “Leer”, SharePoint considera “Editar”.

Tenga en cuenta que si el sitio o la biblioteca hereda permisos del padre, es posible que deba dejar de heredar permisos para otorgar un permiso único al elemento.

Editar permisos de usuario en SharePoint Online usando PowerShell:

Programemos la tarea anterior de editar los permisos de usuario. Elimine "Editar" y agregue el permiso "Leer" al usuario a nivel de sitio.


#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 for Processing
$SiteURL = "https://crescent.sharepoint.com/Sites/marketing"
$UserAccount="i:0#.f|membership|Salaudeen@crescent.com"
$PermissionToRemove="Edit"
$PermissionToAdd="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 all Users of the site
    $Users = $Ctx.Web.SiteUsers
    $Ctx.Load($Users)
    $Ctx.ExecuteQuery()
    
    #Get user accounts
    $UserAccounts =  $Users | Select -ExpandProperty LoginName

    #Check if the given user exists in the site
    If($UserAccounts -Contains $UserAccount)
    {
        #Get the User
        $User = $ctx.Web.SiteUsers.GetByLoginName($UserAccount)

        #Get Permission Levels to add and remove
        $RoleDefToAdd = $Ctx.web.RoleDefinitions.GetByName($PermissionToAdd)
        $RoleDefToRemove = $Ctx.web.RoleDefinitions.GetByName($PermissionToRemove)
        
        #Get the User's role assignment on the web
        $RoleAssignment = $Ctx.web.RoleAssignments.GetByPrincipal($User)
        
        #Add/remove permission levels to the role assignment
        $RoleAssignment.RoleDefinitionBindings.Add($RoleDefToAdd)
        $RoleAssignment.RoleDefinitionBindings.Remove($RoleDefToRemove)
        $RoleAssignment.Update()
        $Ctx.ExecuteQuery() 

        write-host  -f Green "User permissions updated Successfully!"
    }
    else
    {
        Write-host -f Yellow "User Doesn't exist in the site!"
    }
}
Catch {
    write-host -f Red "Error Updating User Permissions!" $_.Exception.Message
} 

PnP PowerShell para cambiar los permisos de usuario en una lista

Aquí está el PnP PowerShell para eliminar los permisos de "Contribuir" y agregar permisos de "Lectura" a un usuario en una lista:


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Retail"
$ListName = "Invoices"
$UserID = "Steve@Crescent.com"
 
#Remove Contribution Role
Set-PnPListPermission -Identity $ListName -User $UserID -RemoveRole "Contribute"

#Grant Read Role
Set-PnPListPermission -Identity $ListName -User $UserID -AddRole "Read"

Para agregar o eliminar el nivel de permiso a un grupo de SharePoint Online usando PowerShell, use: Cambiar el nivel de permiso del grupo de SharePoint con PowerShell

Artículos relacionados