Búsqueda de sitios web

Eliminar todos los usuarios del sitio o lista de SharePoint con PowerShell


Requisito: Hay una lista de SharePoint 2013 con muchos permisos de usuario y quería eliminar todos los permisos de usuario de esa lista de SharePoint. Intenté eliminar a todos los usuarios, pero SharePoint indicó "Ha elegido eliminar demasiados grupos a la vez". Seleccione menos grupos y vuelva a intentarlo”. al elegir la casilla de verificación "Todos los usuarios" y eliminarlos del sitio o grupo de SharePoint.

Entonces, el problema aquí es: no podemos eliminar usuarios de forma masiva cuando excede el recuento máximo de SharePoint. Aquí están mis ingeniosos scripts de PowerShell para eliminar a todos los usuarios del sitio o lista de SharePoint.

Script de PowerShell para eliminar todos los permisos de usuario de la lista de SharePoint:

Déjame mostrarte cómo usar PowerShell para eliminar a todos los usuarios de una lista de SharePoint.


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Variables
$SiteUrl="https://your-sharepoint-site.com" 
$ListName="Your-List-Name" 

#get the Web
$web = Get-SPWeb $SiteUrl
#Get the List
$list = $web.Lists[$ListName]

#If the List is not using Unique permissions, Break inheritance
if(!$list.HasUniqueRoleAssignments)
{
    #Break list inheritance - without copying users
    $list.BreakRoleInheritance($false)
}

#Remove all users from the list
 for ($i = $list.RoleAssignments.Count - 1; $i -ge 0; $i--)
    {
      $RoleAssignment = $list.RoleAssignments[$i]
      $list.RoleAssignments.RemoveByID($RoleAssignment.Member.ID)
      write-host "Removed User/Group :" $RoleAssignment.Member.name
    } 

Eliminar todos los usuarios del sitio de SharePoint

De manera similar, para eliminar a todos los usuarios de un sitio de SharePoint, use este PowerShell:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Site collection URL 
$SiteUrl="https://demo.sp.cloudservicesme.com" 

#get the Root Web
$web = Get-SPWeb $SiteUrl

#Get All Users of the site collection
$UserAccounts = @()
foreach ($user in $web.SiteUsers)
{
   $UserAccounts = $UserAccounts + $user.loginname
}

#Remove all users one by one.
foreach ($user in $UserAccounts)
{
    try
    {
        #Set the Error Action
        $ErrorActionPreference = "Stop"

        #Remove User if not site admin
        if(!$web.SiteUsers[$User].isSiteAdmin)
        {
            $web.SiteUsers.Remove($user)
            Write-host "User Removed :" $user -ForegroundColor Green
        }
    }
    catch    
    {
        Write-host "Failed to remove the user:" + $user -ForegroundColor Red   
    }
    Finally
    {
        #Reset the Error Action to Default
        $ErrorActionPreference = "Continue"
    } 
}

Esto puede resultar útil si necesita limpiar su lista o sitio de SharePoint eliminando los permisos directos de todos.

Artículos relacionados