Búsqueda de sitios web

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" -NoTypeInformation

Una 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:

Artículos relacionados