Búsqueda de sitios web

Reemplazar el administrador de la colección de sitios para todos los sitios en SharePoint Online


Requisito: Reemplazar un administrador de colección de sitios de SharePoint Online para todos los sitios del inquilino.

¿Cómo cambiar los administradores de la colección de sitios en SharePoint Online?

Reemplazar administradores de colecciones de sitios en SharePoint Online es sencillo:

  1. Navegue al sitio de SharePoint Online
  2. Haga clic en el engranaje de Configuración >> Información del sitio >> Ver todas las configuraciones del sitio
  3. En la página de configuración del sitio, haga clic en el enlace "Administradores de la colección de sitios" para cambiar los administradores de la colección de sitios.

También puede configurar administradores de colección de sitios desde el centro de administración de SharePoint:

  1. Sitios >> Sitios activos >> Seleccione la colección de sitios
  2. Haga clic en "Permisos" y luego en "Administrar administradores".
  3. En la página "Administrar administradores", puede agregar/eliminar y administrar administradores de la colección de sitios.

¿Qué tal reemplazar un administrador de colección de sitios existente por uno nuevo para todas las colecciones de sitios de su inquilino? Cuando tiene muchas colecciones de sitios, cambiar los administradores de la colección de sitios a través de la interfaz de usuario web sería una tarea engorrosa y que consumiría mucho tiempo. Entonces, usemos PowerShell para reemplazar a los administradores de la colección de sitios.

PowerShell reemplazará el administrador de la colección de sitios en todos los sitios de SharePoint Online

Este script de PowerShell elimina el usuario, proporcionado en la variable $RemoveAccount, y agrega un nuevo administrador de colección de sitios proporcionado en $AddAccount, siempre que $RemoveAccount tuviera derechos de administrador de colección de sitios. Tenga en cuenta que el propietario principal del sitio también se considera administrador de la colección de sitios.


Import-Module Microsoft.Online.Sharepoint.PowerShell -DisableNameChecking

#Variables for processing
$TenantAdminURL = "https://crescent-admin.sharepoint.com"
$RemoveAccount="Steve@crescent.com"
$AddAccount = "Salaudeen@crescent.com"

Try {
    #Connect to SharePoint Online
    Connect-SPOService -url $TenantAdminURL -credential (Get-Credential)
 
    #Get All Site Collections
    $Sites = Get-SPOSite -Limit ALL

    #Loop through each site and add site collection admin
    Foreach ($Site in $Sites)
    {
        Write-host "Scanning site:"$Site.Url -f Cyan

        Try {
            #Check if the given user is a site collection administrator
            $Admin = Get-SPOUser -Site $Site.Url -Limit All | Where {$_.IsSiteAdmin -eq $true} | Where {$_.LoginName -eq $RemoveAccount }
    
            If($Admin -ne $Null)
            {            
                #Add the new user as Site Collection Admin
                Write-host "`tAdding Site Collection Admin to:"$Site.URL -f Yellow -NoNewline
                Set-SPOUser -site $Site -LoginName $AddAccount -IsSiteCollectionAdmin $True| Out-Null
                Write-host " - Done!" -f Green

                #Remove the existing Site collection Administrator
                Write-host "`tRemoving Site Collection Admin from:"$Site.URL -f Yellow  -NoNewline
                Set-SPOUser -site $Site -LoginName $RemoveAccount -IsSiteCollectionAdmin $False | Out-Null
                Write-host " - Done!" -f Green       
            }
        }
        Catch {
            write-host -f Red "`tError Replacing Site Collection Administrators!" $_.Exception.Message
        }
    }
}
Catch {
    write-host -f Red "`tError:" $_.Exception.Message
} 

Tenga en cuenta que este reemplazo debe realizarse a nivel de grupo para los sitios conectados a grupos de Microsoft 365 y los sitios donde se agrega un grupo de AD como administrador de la colección de sitios.

PnP PowerShell para reemplazar al administrador de la colección de sitios en SharePoint Online

De manera similar, el script anterior se puede reescribir en el script PnP PowerShell para reemplazar a los administradores de la colección de sitios:


#Parameters
$TenantAdminURL = "https://Crescent-admin.sharepoint.com"
$OldAdminAccount= "i:0#.f|membership|mark@crescent.com"
$NewAdminAccount = "i:0#.f|membership|steve@crescent.com"

Try {
    #Connect to Admin Center
    $Cred = Get-Credential
    Connect-PnPOnline -Url $TenantAdminURL -Credentials $Cred
  
    #Get All Site collections
    $SiteCollections = Get-PnPTenantSite

    #Loop through each site collection
    ForEach($Site in $SiteCollections)
    {
        Try {
            #Connect to site collection
            Connect-PnPOnline -Url $Site.Url -Credentials $Cred
            Write-host "Scanning site:"$Site.Url -f Cyan
  
            #Get site collection admins
            $SiteAdmin = Get-PnPSiteCollectionAdmin | Where {$_.LoginName -eq $OldAdminAccount}

            If($SiteAdmin -ne $Null)
            {
                #Add the new user as Site Collection Admin
                Write-host "`tAdding Site Collection Admin to:"$Site.URL -f Yellow -NoNewline
                Add-PnPSiteCollectionAdmin -Owners $NewAdminAccount
                Write-host " - Done!" -f Green

                #Remove the existing Site collection Administrator
                Write-host "`tRemoving Site Collection Admin from:"$Site.URL -f Yellow  -NoNewline
                Remove-PnPSiteCollectionAdmin -Owners $OldAdminAccount
                Write-host " - Done!" -f Green       
            }            
        }
        Catch {
            write-host -f Red "`tError Replacing Site Collection Administrators!" $_.Exception.Message
        }
    }
}
Catch {
    write-host -f Red "`tError:" $_.Exception.Message
}

Asegúrese de que la cuenta que ejecuta estos scripts de PowerShell tenga derechos de administrador de la colección de sitios para todas las colecciones de sitios del inquilino. De lo contrario, puede encontrar un problema:

Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))

Este script comprueba si el usuario determinado es un administrador de la colección de sitios del sitio. En caso afirmativo, agrega el nuevo usuario y elimina al usuario anterior del sitio. Sin embargo, supongamos que no tiene derechos de administrador de colección de sitios para un sitio. En ese caso, no puede obtener administradores de la colección de sitios existentes del sitio a través de PowerShell (¡aunque puede agregar o eliminar administradores de la colección de sitios!).

A continuación se explica cómo agregar un administrador de colección de sitios a todos los sitios del inquilino: Agregar un administrador de colección de sitios a todos los sitios de SharePoint Online mediante PowerShell

Artículos relacionados