Supprimer des licences Microsoft 365 des comptes d’utilisateur avec PowerShell

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

Remarque

Découvrez comment supprimer des licences des comptes d’utilisateur avec le Centre d'administration Microsoft 365. Pour obtenir la liste des ressources supplémentaires, consultez Gérer les utilisateurs et les groupes.

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

Tout d’abord, connectez-vous à votre locataire Microsoft 365.

L’attribution et la suppression de licences pour un utilisateur nécessitent l’étendue d’autorisation User.ReadWrite.All ou l’une des autres autorisations répertoriées dans la page de référence « Attribuer une licence » API Graph.

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

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

Pour afficher les informations du plan de licence dans votre organization, consultez les articles suivants :

Suppression de licences de comptes d’utilisateur

Pour supprimer des licences à partir d’un compte d’utilisateur existant, utilisez la syntaxe suivante :

Set-MgUserLicense -UserId "<Account>" -RemoveLicenses @("<AccountSkuId1>") -AddLicenses @{}

Cet exemple supprime le plan de licence SPE_E5 (Microsoft 365 E5) de l’utilisateur BelindaN@litwareinc.com:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
Set-MgUserLicense -UserId "belindan@litwareinc.com" -RemoveLicenses @($e5Sku.SkuId) -AddLicenses @{}

Pour supprimer toutes les licences d’un groupe d’utilisateurs sous licence existants, utilisez la syntaxe suivante :

$licensedUsers = Get-MgUser -Filter 'assignedLicenses/$count ne 0' `
    -ConsistencyLevel eventual -CountVariable licensedUserCount -All `
    -Select UserPrincipalName,DisplayName,AssignedLicenses

foreach($user in $licensedUsers)
{
    $licensesToRemove = $user.AssignedLicenses | Select -ExpandProperty SkuId
    $user = Set-MgUserLicense -UserId $user.UserPrincipalName -RemoveLicenses $licensesToRemove -AddLicenses @{} 
}

Pour supprimer une licence spécifique d’une liste d’utilisateurs dans un fichier texte, procédez comme suit. Cet exemple supprime la licence SPE_E5 (Microsoft 365 Entreprise E5) des comptes d’utilisateur définis dans le fichier texte C :\Mon Documents\Accounts.txt.

  1. Créez et enregistrez un fichier texte dans C :\My Documents\Accounts.txt qui contient un compte sur chaque ligne, comme suit :

    akol@contoso.com
    tjohnston@contoso.com
    kakers@contoso.com
    
  2. Utilisez la commande suivante :

    $x=Get-Content "C:\My Documents\Accounts.txt"
    $e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
    for ($i=0; $i -lt $x.Count; $i++)
    {
    Set-MgUserLicense -UserId $x[$i] -RemoveLicenses @($e5Sku.SkuId) -AddLicenses @{}
    }
    

Une autre façon de libérer une licence consiste à supprimer le compte d’utilisateur. Pour plus d’informations, consultez Supprimer et restaurer des comptes d’utilisateur avec PowerShell.

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