Búsqueda de sitios web

Eliminar usuario de todos los sitios en SharePoint usando PowerShell


¿Cómo eliminar un usuario de todas las colecciones de sitios en SharePoint 2013 usando PowerShell?

A veces, es posible que necesitemos eliminar a un usuario en particular de todas las colecciones de sitios. Digamos, por ejemplo, que un empleado deja la empresa. A continuación se explica cómo eliminar un usuario de todos los sitios de SharePoint mediante PowerShell:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

Function Delete-UserFromAllSites([string]$WebAppURL, [string]$UserID)
{
    #Get All Site collections
    $SitesColl = Get-SPWebApplication $WebAppURL | Get-SPSite -Limit All

    foreach($Site in $SitesColl)
    {
        write-host "Processing site:" $Site.RootWeb.URL
        
        #Check if user Exists in the site collection
        $User = $Site.RootWeb.SiteUsers | Where-Object {$_.LoginName -eq $UserID}
           
        #If user account found
        if($User -ne $null)
        {
            #Remove User from the Site
            Remove-SPUser $UserID -web $Site.RootWeb.URL -confirm:$false
            write-host "Removed user from site collection:"$Site.RootWeb.URL -f Green
        }        
    }    
}

#Variables for processing
$WebAppURL = "https://Portal.Crescent.com/"
$UserID="Crescent\DaveP"

#Call the function
Delete-UserFromAllSites $WebAppURL $UserID 

Esto escaneará y eliminará un usuario de SharePoint de todas las colecciones de sitios en la aplicación web determinada.

Para eliminar varios usuarios de todas las colecciones de sitios, simplemente almacene las cuentas de usuario en una matriz y llame a la función PowerShell. P.ej.


#Array to store user accounts
$userNames= ("domain\user1", "global\user2", "domain\user3")
#Iterate through the array
foreach($user in $userNames)
{  
     #Call the function
     Delete-UserFromAllSites "https://sharepoint.crescent.com" $user 
}

Artículos relacionados