Eliminación de licencias de Microsoft 365 de cuentas de usuario con PowerShell

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

Nota:

Obtenga información sobre cómo quitar licencias de cuentas de usuario con el Centro de administración de Microsoft 365. Para obtener una lista de recursos adicionales, consulte Administración de usuarios y grupos.

Uso del SDK de PowerShell de Microsoft Graph

En primer lugar, conéctese a su inquilino de Microsoft 365.

La asignación y eliminación de licencias para un usuario requiere el ámbito de permisos User.ReadWrite.All o uno de los demás permisos enumerados en la página de referencia "Asignar licencia" Graph API.

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

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

Para ver la información del plan de licencias en su organización, consulte los artículos siguientes:

Eliminación de licencias de cuentas de usuario

Para quitar licencias de una cuenta de usuario existente, utilice la sintaxis siguiente:

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

En este ejemplo se quita el plan de licencias de SPE_E5 (Microsoft 365 E5) del usuario BelindaN@litwareinc.com:

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

Para quitar todas las licencias de un grupo de usuarios con licencia existentes, use la sintaxis siguiente:

$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 @{} 
}

Para quitar una licencia específica de una lista de usuarios de un archivo de texto, siga estos pasos. En este ejemplo se quita la licencia de SPE_E5 (Microsoft 365 Enterprise E5) de las cuentas de usuario definidas en el archivo de texto C:\My Documents\Accounts.txt.

  1. Cree y guarde un archivo de texto en C:\My Documents\Accounts.txt que contenga una cuenta en cada línea como esta:

    akol@contoso.com
    tjohnston@contoso.com
    kakers@contoso.com
    
  2. Use el siguiente comando:

    $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 @{}
    }
    

Otra forma de liberar una licencia consiste en eliminar la cuenta de usuario. Para obtener más información, consulte Eliminación y restauración de cuentas de usuario con PowerShell.

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