Condividi tramite


Rimuovere le licenze di Microsoft 365 dagli account utente con PowerShell

Questo articolo si applica sia a Microsoft 365 Enterprise che a Office 365 Enterprise.

Nota

Informazioni su come rimuovere licenze dagli account utente con il interfaccia di amministrazione di Microsoft 365. Per un elenco di risorse aggiuntive, vedere Gestire utenti e gruppi.

Usare Microsoft Graph PowerShell SDK

Prima di tutto, connettersi al tenant di Microsoft 365.

Per assegnare e rimuovere licenze per un utente è necessario l'ambito di autorizzazione User.ReadWrite.All o una delle altre autorizzazioni elencate nella pagina di riferimento "Assegna licenza" API Graph.

L'ambito di autorizzazione Organization.Read.All è necessario per leggere le licenze disponibili nel tenant.

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

Per visualizzare le informazioni sul piano di licenza nell'organizzazione, vedere gli articoli seguenti:

Rimozione di licenze dagli account utente

Per rimuovere le licenze da un account utente esistente, utilizzare la sintassi seguente:

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

In questo esempio viene rimosso il piano di licenza SPE_E5 (Microsoft 365 E5) dall'utente BelindaN@litwareinc.com:

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

Per rimuovere tutte le licenze da un gruppo di utenti con licenza esistente, usare la sintassi seguente:

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

Per rimuovere una licenza specifica da un elenco di utenti in un file di testo, seguire questa procedura. In questo esempio viene rimossa la licenza SPE_E5 (Microsoft 365 Enterprise E5) dagli account utente definiti nel file di testo C:\My Documents\Accounts.txt.

  1. Creare e salvare un file di testo in C:\My Documents\Accounts.txt che contiene un account in ogni riga come segue:

    akol@contoso.com
    tjohnston@contoso.com
    kakers@contoso.com
    
  2. Usare il comando seguente:

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

Un altro modo per liberare una licenza consiste nell'eliminazione dell'account utente. Per altre informazioni, vedere Eliminare e ripristinare gli account utente con PowerShell.

Vedere anche

Gestire gli account utente, le licenze e i gruppi di Microsoft 365 con PowerShell

Gestire Microsoft 365 con PowerShell

Guida introduttiva a PowerShell per Microsoft 365