Afficher les utilisateurs Microsoft 365 sous licence et sans licence avec PowerShell

Cet article est valable pour Microsoft 365 Entreprise et Office 365 Entreprise.

Les comptes d’utilisateur de votre organization Microsoft 365 peuvent avoir certaines licences, toutes ou aucune des licences disponibles qui leur sont attribuées à partir des plans de licence disponibles dans votre organization. Vous pouvez utiliser PowerShell pour Microsoft 365 pour trouver rapidement les utilisateurs sous licence et sans licence dans votre organization.

Remarque

Le module Azure Active Directory est remplacé par le Kit de développement logiciel (SDK) Microsoft Graph PowerShell. Vous pouvez utiliser le kit de développement logiciel (SDK) PowerShell Microsoft Graph pour accéder à toutes les API Microsoft Graph. Pour plus d’informations, consultez Démarrage avec le kit de développement logiciel (SDK) PowerShell Microsoft Graph.

Utiliser le Kit de développement logiciel (SDK) Microsoft Graph PowerShell

Tout d’abord, connectez-vous à Microsoft 365 avec PowerShell.

La lecture des propriétés utilisateur, y compris les détails de la licence, nécessite l’étendue d’autorisation User.Read.All ou l’une des autres autorisations répertoriées dans la page de référence « Obtenir un utilisateur » API Graph.

L’étendue d’autorisation Organization.Read.All est nécessaire pour lire les licences disponibles dans le locataire.

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

Pour afficher les détails de la licence d’un compte d’utilisateur spécifique, exécutez la commande suivante :

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

Par exemple :

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

Pour afficher la liste de tous les comptes d’utilisateur dans votre organization qui n’ont pas été affectés à vos plans de licence (utilisateurs sans licence), exécutez la commande suivante :

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

Write-Host "Found $unlicensedUserCount unlicensed users."

Pour afficher la liste de tous les comptes d’utilisateur membres (à l’exception des invités) dans votre organization qui n’ont pas été attribués à vos plans de licence (utilisateurs sans licence), exécutez la commande suivante :

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

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

Pour afficher la liste de tous les comptes d’utilisateur de votre organization auxquels l’un de vos plans de licence (utilisateurs sous licence) a été attribué, exécutez la commande suivante :

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

Pour afficher la liste de tous les comptes d’utilisateur de votre organization auxquels une licence E5 est attribuée, exécutez la commande suivante :

$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."

Voir aussi

Gérer les comptes d’utilisateurs, les licences et les groupes Microsoft 365 avec PowerShell

Gestion de Microsoft 365 à l’aide de PowerShell

Prise en main de PowerShell pour Microsoft 365