Visualización de usuarios de Microsoft 365 con licencia y sin licencia con PowerShell

Este artículo afecta tanto a Office 365 Enterprise como a Microsoft 365 Enterprise

Las cuentas de usuario de su organización de Microsoft 365 pueden tener algunas, todas o ninguna de las licencias disponibles asignadas desde los planes de licencias que están disponibles en su organización. Puede usar PowerShell para Microsoft 365 para encontrar rápidamente los usuarios con licencia y sin licencia de su organización.

Nota:

El sdk de PowerShell de Microsoft Graph reemplaza el módulo de Azure Active Directory. Puede usar el SDK de PowerShell de Microsoft Graph para acceder a todas las API de Microsoft Graph. Para más información, consulte Introducción al SDK de PowerShell de Microsoft Graph.

Uso del SDK de PowerShell de Microsoft Graph

En primer lugar, conéctese a Microsoft 365 con PowerShell.

La lectura de propiedades de usuario, incluidos los detalles de la licencia, requiere el ámbito de permiso User.Read.All o uno de los demás permisos enumerados en la página de referencia "Obtener un usuario" Graph API.

El ámbito de permisos Organization.Read.All es necesario para leer las licencias disponibles en el inquilino.

Connect-Graph -Scopes User.Read.All, Organization.Read.All

Para ver los detalles de licencia de una cuenta de usuario específica, ejecute el siguiente comando:

Get-MgUserLicenseDetail -UserId "<user sign-in name (UPN)>"

Por ejemplo:

Get-MgUserLicenseDetail -UserId "belindan@litwareinc.com"

Para ver la lista de todas las cuentas de usuario de la organización a las que NO se ha asignado ninguno de los planes de licencia (usuarios sin licencia), ejecute el siguiente comando:

Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users."

Para ver la lista de todas las cuentas de usuario miembro (excepto los invitados) de la organización a las que NO se les ha asignado ninguno de los planes de licencia (usuarios sin licencia), ejecute el siguiente comando:

Get-MgUser -Filter "assignedLicenses/`$count eq 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users (excluding guests)."

Para ver la lista de todas las cuentas de usuario de la organización a las que se ha asignado cualquiera de los planes de licencia (usuarios con licencia), ejecute el siguiente comando:

Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName,DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses

Write-Host "Found $licensedUserCount licensed users."

Para ver la lista de todas las cuentas de usuario de la organización que tienen asignada una licencia E5, ejecute el siguiente comando:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'

Get-MgUser -Filter "assignedLicenses/any(x:x/skuId eq $($e5sku.SkuId) )" -ConsistencyLevel eventual -CountVariable e5licensedUserCount -All

Write-Host "Found $e5licensedUserCount E5 licensed users."

Consulte también

Administrar cuentas de usuario, licencias y grupos de Microsoft 365 con PowerShell

Administrar Microsoft 365 con PowerShell

Introducción a PowerShell para Microsoft 365