Obtenga todos los usuarios y grupos del sitio de SharePoint Online mediante PowerShell
Requisito: Obtener el informe de todos los usuarios y grupos en SharePoint Online mediante PowerShell.
Secuencia de comandos de PowerShell para obtener el informe de todos los usuarios y grupos en SharePoint Online:
¿Necesita obtener una lista de todos los usuarios y grupos en SharePoint Online? Si es así, ¡PowerShell puede ayudar! La exportación de usuarios y grupos desde un sitio de SharePoint Online se puede realizar con PowerShell. Descubramos cómo producir fácilmente un informe general para los usuarios y grupos del sitio en formato Excel.
Este script CSOM de PowerShell obtiene todos los grupos y usuarios de cada grupo en un sitio de SharePoint Online:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables for Site URL
$SiteURL= "https://crescent.sharepoint.com/sites/sales"
#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred
#Get all Groups
$Groups=$Ctx.Web.SiteGroups
$Ctx.Load($Groups)
$Ctx.ExecuteQuery()
#Get Each member from the Group
Foreach($Group in $Groups)
{
Write-Host "--- $($Group.Title) --- "
#Getting the members
$SiteUsers=$Group.Users
$Ctx.Load($SiteUsers)
$Ctx.ExecuteQuery()
Foreach($User in $SiteUsers)
{
Write-Host "$($User.Title), $($User.Email), $($User.LoginName)"
}
}
}
Catch {
write-host -f Red "Error getting groups and users!" $_.Exception.Message
}
Esto puede resultar útil si necesita obtener una lista de todos los usuarios o grupos de un sitio para fines de generación de informes, solucionar problemas de acceso o si necesita eliminar un usuario o grupo del sitio.
PnP PowerShell para obtener informes de grupos y usuarios en SharePoint Online:
Si necesita exportar usuarios y grupos en línea de SharePoint a Excel, los cmdlets PnP PowerShell pueden ser útiles. El cmdlet Get-PnPGroup proporciona una manera de exportar grupos de SharePoint Online y la membresía de usuarios en cada grupo. Para usar este cmdlet, deberá conectarse a SharePoint en línea mediante el cmdlet Connect-PnPOnline. Una vez que esté conectado, puede usar el cmdlet Get-PnPGroup para exportar los datos del usuario deseado a un archivo CSV. Este archivo luego se puede abrir en Excel para su posterior análisis.
Exportemos todos los usuarios y usuarios de un sitio a un archivo CSV:
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$CSVFile = "C:\Temp\GroupUsers.csv"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-credential) #-Interactive
#Get All Groups from Site - Exclude system Groups
$Groups = Get-PnPGroup | Where {$_.OwnerTitle -ne "System Account"}
$GroupData=@()
#Get Group Details
ForEach($Group in $Groups)
{
#Get Group data
$GroupData += New-Object PSObject -Property ([ordered]@{
"Group Name" = $Group.Title
"Users" = $Group.Users.Title -join "; "
})
}
$GroupData
#Export Users data to CSV file
$GroupData | Export-Csv -NoTypeInformation $CSVFile
Aquí hay otro artículo para obtener todos los grupos y miembros de grupos de SharePoint Online usando el shell de SharePoint Online: SharePoint Online: Informe de usuarios y grupos del sitio usando PowerShell
