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.
