Exporte todos los usuarios y licencias de Office 365 con Microsoft Graph PowerShell
En este tutorial, le mostraré cómo puede utilizar un script de Microsoft Graph PowerShell para exportar una lista de todos sus usuarios y los detalles de sus licencias a un archivo CSV.
Esto es útil ya que actualmente el portal de administración de Microsoft 365 no proporciona la funcionalidad para realizar esta tarea. Donde puede lograr los resultados deseados con este script.
Requisitos previos
Para poder ejecutar el script para exportar a todos los usuarios, necesitará tener instalado el módulo Microsoft Graph PowerShell. Consulte mi tutorial aquí para saber cómo instalar el módulo Microsoft Graph PowerShell.
También debe tener acceso a una cuenta de administrador global para delegar los permisos necesarios a Microsoft Graph PowerShell al conectarse.
Exporte todos los usuarios de Office 365 y los detalles de la licencia mediante Microsoft Graph PowerShell
El script utiliza el cmdlet Get-MgUser, que se puede encontrar en el módulo de PowerShell Microsoft.Graph.Users y se puede llamar con User.Read.All. permiso. Para obtener más información sobre el cmdlet Get-MgUser, consulte mi tutorial: Cómo usar Get-MgUser con Microsoft Graph PowerShell
Para crear el informe que incluya todos los usuarios y sus licencias, siga los pasos siguientes:
1. Abre un editor de texto.
2. Copie y pegue el siguiente código en su editor de texto.
3. Edite la última línea de código para cambiar la ubicación del informe: “C:\temp\licensedusers.csv”.
4. Copie y pegue el script completo directamente en PowerShell.
5. Cuando se le solicite, inicie sesión en el mensaje de inicio de sesión interactivo con sus credenciales de administrador global y acepte los permisos delegados.
Import-Module Microsoft.Graph.Users, Microsoft.Graph.Identity.DirectoryManagement
Connect-MgGraph -Scope User.read.all, DeviceManagementConfiguration.Read.All
$CompanyName = (Get-MgOrganization | Select VerifiedDomains).verifieddomains | Where-Object {$_.IsDefault -eq "True"}
$Users = Get-MgUser -all
$Report = [System.Collections.Generic.List[Object]]::new()
Write-host "Found $($users.count) users for $($CompanyName.Name)" -ForegroundColor Cyan
ForEach ($user in $Users) {
Write-Host "Retrieving license info for $($User.DisplayName)" -ForegroundColor yellow
If (Get-MgUserLicenseDetail -USerId $User.id) {
$licenses = $null
$licenses = (Get-MgUserLicenseDetail -UserId $User.id).SkuPartNumber -join ", "
Write-Host "Licenses found for $($User.DisplayName): $licenses" -ForegroundColor cyan
$obj = [pscustomobject][ordered]@{
DisplayName = $user.DisplayName
UserPrincipalName = $user.UserPrincipalName
Licenses = $licenses
}
$report.Add($obj)
} else {
Write-Host "No licenses found for $($User.DisplayName)" -ForegroundColor Red
}
}
$report | Export-CSV "C:\temp\licensedusers.csv" -NoTypeInformationUna vez que haya ejecutado el script, debería encontrar el archivo .csv ubicado en el área que definió en el script. Si dejó el script predeterminado, lo encontrará en C:\temp.
Su informe de usuario tendrá el siguiente aspecto una vez abierto:

