SharePoint Online: PowerShell para obtener administradores de colecciones de sitios
Requisito: SharePoint Online PowerShell para enumerar todos los administradores de la colección de sitios.
Los administradores de la colección de sitios de SharePoint Online poseen control total de toda la colección de sitios, incluidos el sitio de nivel superior, los subsitios, todas las listas y las bibliotecas de la colección de sitios. Cada colección de sitios de SharePoint puede tener sus propios administradores de la colección de sitios, normalmente asignados durante el tiempo de la colección de sitios creada por los administradores de SharePoint Online a través del sitio del Centro de administración de SharePoint Online, como propietario principal del sitio y administradores de la colección de sitios. Cualquier administrador de colección de sitios adicional se puede agregar o eliminar a través de la página de configuración del sitio.
¿Cómo obtener todos los administradores de la colección de sitios desde el Centro de administración de SharePoint?
¿Cómo encuentro al administrador de la colección en SharePoint Online? Para obtener todos los administradores de la colección de sitios, inicie sesión en el Centro de administración de SharePoint desde sus navegadores favoritos como Microsoft Edge o Google Chrome >> Expanda “Sitios” >> Sitios activos >> Seleccione el sitio de la lista >> Haga clic en “Permisos” y luego elija "Administrar administradores".
Los administradores de la colección de sitios tienen los mismos derechos de acceso que los propietarios principales del sitio de SharePoint, ¡pero la única diferencia son las notificaciones por correo electrónico! Los administradores de la colección de sitios principal recibirán notificaciones por correo electrónico, como correos electrónicos de advertencia sobre el límite de almacenamiento de la colección de sitios.
¿Cómo obtener administradores de colecciones de sitios en SharePoint Online desde la configuración del sitio?
Si desea obtener todos los administradores de la colección de sitios de un sitio de SharePoint Online, haga lo siguiente:
- Haga clic en el ícono de ajustes de configuración y seleccione Configuración del sitio.
- En la página Configuración del sitio, haga clic en el enlace "Administradores de la colección de sitios" en el grupo "Usuarios y permisos" (presione este acceso directo de URL en el navegador: /_layouts/15/mngsiteadmin.aspx).
Esta página le brinda la lista de administradores de la colección de sitios en la colección de sitios en particular.
En los sitios modernos conectados a grupos, los administradores de la colección de sitios se encuentran en Configuración >> Permisos del sitio >> Configuración de permisos avanzados.
Ahora, usemos el script de PowerShell para obtener administradores de colecciones de sitios en SharePoint Online.
Obtener administrador de colección de sitios principal: propietario mediante PowerShell
A continuación se explica cómo utilizar el script de PowerShell para obtener administradores de colecciones de sitios en SharePoint Online:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll"
#Get Primary Owners of All Site collections from the Tenant
Function Get-SPOPrimarySiteOwners($AdminSiteURL, $Cred)
{
#Setup credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminSiteURL)
$Ctx.Credentials = $Credentials
#Get the tenant object
$Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)
#Get All Site Collections
$SiteCollections=$Tenant.GetSitePropertiesFromSharePoint(0,$true)
$Ctx.Load($SiteCollections)
$Ctx.ExecuteQuery()
#Iterate through Each site collection
ForEach($Site in $SiteCollections)
{
#Get the Site Collection and Audit Objects
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($Site.URL)
$Ctx.Credentials = $Credentials
#Get the Site collection
$SiteCollection = $Ctx.Site
$Ctx.Load($SiteCollection)
$Ctx.ExecuteQuery()
#Get Site Owner
$Owner = $SiteCollection.Owner
$Ctx.Load($Owner)
$Ctx.ExecuteQuery()
#Output Primary Site owner Details
$SiteCollection | Select URL, @{Name="Owner Name";Expression={$_.Owner.Title}}, @{Name="Owner Email";Expression={$_.Owner.Email}}
}
}
#Set Parameters
$AdminSiteUrl = "https://Crescent-admin.sharepoint.com/"
$Cred= Get-Credential
Get-SPOPrimarySiteOwners -AdminSiteURL $AdminSiteUrl -Cred $Cred
Asegúrese de tener CSOM SDK o SharePoint Online PowerShell Module instalado en su máquina local antes de ejecutar este script. Puede utilizar Windows PowerShell ISE para ejecutar el script. Obtiene el administrador principal de la colección de sitios mediante PowerShell en SharePoint Online.
SharePoint Online: PowerShell para obtener administradores de colecciones de sitios
Puede usar el cmdlet Get-SPOUser de PowerShell junto con la propiedad de filtro IsSiteAdmin para obtener la lista de administradores de la colección de sitios de la colección de sitios determinada. Esto le permite acceder tanto a los propietarios principales del sitio como a los administradores de la colección de sitios.
#Variables for processing
$AdminURL = "https://Crescent-admin.sharepoint.com/"
$AdminName = "SPAdmin@Crescent.com"
$SiteCollURL="https://Crescent.sharepoint.com/sites/sales"
#User Names Password to connect
$Password = Read-host -assecurestring "Enter Password for $AdminName"
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Password
#Connect to SharePoint Online
Connect-SPOService -url $AdminURL -credential $Credential
#Get the Site colection
$SiteColl = Get-SPOSite $SiteCollURL
#sharepoint online powershell get all site collection admins
$SiteAdmins = Get-SPOUser -Site $SiteCollURL -Limit ALL | Where { $_.IsSiteAdmin -eq $True}
foreach($Admin in $SiteAdmins)
{
Write-host $Admin.LoginName
}
PowerShell para obtener administradores de colecciones de sitios de todas las colecciones de sitios en SharePoint Online
Agreguemos algo de manejo de errores y obtengamos administradores de colecciones de sitios de todas las colecciones de sitios.
#Variables for processing
$AdminURL = "https://Crescent-admin.sharepoint.com"
$AdminName = "spadmin@Crescent.com"
#User Names Password to connect
$Password = Read-host -assecurestring "Enter Password for $AdminName"
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Password
Try {
#Connect to SharePoint Online
Connect-SPOService -url $AdminURL -credential $Credential
#Get all Site colections
$Sites = Get-SPOSite -Limit ALL
Foreach ($Site in $Sites)
{
Write-host $Site.URL
#Get all Site Collection Administrators
$SiteAdmins = Get-SPOUser -Site $Site.Url -Limit ALL | Where { $_.IsSiteAdmin -eq $True}
foreach($Admin in $SiteAdmins)
{
Write-host $Admin.LoginName
}
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Consiga que todos los administradores de colecciones de sitios utilicen PnP PowerShell en SharePoint Online
Con PnP PowerShell, los administradores de la colección de sitios se pueden recuperar con el cmdlet Get-PnPSiteCollectionAdmin. Aquí está SharePoint Online PowerShell para obtener todos los administradores de la colección de sitios:
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get Site Collection Administrators
Get-PnPSiteCollectionAdmin
Este script PnP PowerShell obtiene todos los administradores de la colección de sitios de una colección de sitios determinada. Para obtener administradores de colección de sitios de todos los sitios del inquilino, utilice lo siguiente:
#Set Variables
$SiteURL = "https://crescent.sharepoint.com"
#Get Credentials to connect
$Cred = Get-Credential
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#Get All Site collections
$SitesCollection = Get-PnPTenantSite
#Loop through each site collection
ForEach($Site in $SitesCollection)
{
Write-host -F Green "Site Collection Administrators of site: " $Site.Url
Connect-PnPOnline -Url $Site.Url -Credentials $Cred
#Get Site Collection administrators of the site
Get-PnPSiteCollectionAdmin
}
Obtenga administradores de colecciones de sitios de sitios conectados a grupos
Si un sitio está conectado a un grupo, verá solo los "Propietarios del grupo" en los resultados del script anterior. A continuación se explica cómo expandirse y conseguir propietarios del grupo:
#Set Variables
$AdminSiteURL = "https://crescent-admin.sharepoint.com"
#Connect to Admin Center
Connect-PnPOnline -Url $AdminSiteURL -Interactive
#Get All Site collections - Exclude: Seach Center, Mysite Host, App Catalog, Redirect, Content Type Hub, eDiscovery and Bot Sites
$SiteCollections = Get-PnPTenantSite | Where -Property Template -NotIn ("SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0", "POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1")
#Loop through each site collection
ForEach($Site in $SiteCollections)
{
Write-host -F Yellow "Getting Site Collection Administrators of the site: " $Site.Url
Connect-PnPOnline -Url $Site.Url -Interactive
#Get Site Collection Administrators
$SiteAdminstrators = @()
Get-PnPSiteCollectionAdmin -PipelineVariable Admin | ForEach-Object {
If($_.PrincipalType -eq "SecurityGroup")
{
#Get Members of the Group
$Group = Get-PnPMicrosoft365Group -IncludeOwners | Where {$_.Mail -eq $Admin.Email}
$Group.Owners | Select Email | ForEach-Object {
$SiteAdminstrators += $_.Email
}
}
Else
{
$SiteAdminstrators += $Admin.Email
}
}
#Get Site Collection Administrators of the Site
$SiteAdminstrators | select -Unique
}
Si necesita exportar todos los administradores de la colección de sitios a un archivo CSV, consulte: Exportar administradores de la colección de sitios de SharePoint Online a CSV
Preguntas frecuentes:
¿Cómo agrego una administración de colección de sitios en SharePoint en línea usando PowerShell?
Para agregar un administrador de colección de sitios de SharePoint, use: Por ejemplo, “Set-SPOUser -site $SiteURL -LoginName 'UPN del usuario' -IsSiteCollectionAdmin $True” en el Shell de administración de SharePoint Online o cmdlets Add-PnPSiteCollectionAdmin/Set-PnPTenantSite usando PnP PowerShell . También puede usar el modelo de objetos del lado del cliente para configurar la propiedad "IsSiteAdmin" del usuario para establecer un administrador de la colección de sitios.
Más información: SharePoint Online PowerShell para agregar un administrador de la colección de sitios
¿Cómo elimino un administrador de colección en SharePoint Online?
Puede usar el centro de administración de SharePoint Online, la página de configuración del sitio o los scripts de PowerShell para eliminar un administrador de la colección de sitios del sitio de SharePoint Online.
Más información: Eliminar el administrador de la colección de sitios en SharePoint Online
¿Cómo cambio el administrador principal en SharePoint Online?
Puede cambiar el propietario del sitio a través del centro de administración de SharePoint seleccionando la colección de sitios, haciendo clic en "Permisos" y luego en "Administrar administradores". En el panel "Administrar administradores", puede cambiar el administrador principal de la colección de sitios (propietario del sitio) configurándolo como "Administrador principal".
Más información: ¿Cómo cambiar el propietario del sitio (administrador principal) en SharePoint Online?

