Visualizzare gli utenti di Microsoft 365 con licenza e senza licenza con PowerShell

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

Gli account utente dell'organizzazione di Microsoft 365 potrebbero avere alcune, tutte o nessuna delle licenze disponibili assegnate dai piani di licenza disponibili nell'organizzazione. È possibile usare PowerShell per Microsoft 365 per trovare rapidamente gli utenti con licenza e senza licenza nell'organizzazione.

Nota

Il modulo Azure Active Directory viene sostituito da Microsoft Graph PowerShell SDK. È possibile usare Microsoft Graph PowerShell SDK per accedere a tutte le API di Microsoft Graph. Per altre informazioni, vedere Inizia a usare Attività iniziali con Microsoft Graph PowerShell SDK.

Usare Microsoft Graph PowerShell SDK

Prima di tutto, connettersi a Microsoft 365 con PowerShell.

La lettura delle proprietà utente, inclusi i dettagli della licenza, richiede l'ambito di autorizzazione User.Read.All o una delle altre autorizzazioni elencate nella pagina di riferimento "Ottieni un utente" API Graph.

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

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

Per visualizzare i dettagli della licenza di un account utente specifico, eseguire il comando seguente:

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

Ad esempio:

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

Per visualizzare l'elenco di tutti gli account utente dell'organizzazione a cui NON è stato assegnato alcun piano di licenza (utenti senza licenza), eseguire il comando seguente:

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

Write-Host "Found $unlicensedUserCount unlicensed users."

Per visualizzare l'elenco di tutti gli account utente membri (esclusi gli utenti guest) nell'organizzazione a cui NON è stato assegnato alcun piano di licenza (utenti senza licenza), eseguire il comando seguente:

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

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

Per visualizzare l'elenco di tutti gli account utente dell'organizzazione a cui è stato assegnato uno dei piani di licenza (utenti con licenza), eseguire il comando seguente:

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

Per visualizzare l'elenco di tutti gli account utente dell'organizzazione a cui è assegnata una licenza E5, eseguire il comando seguente:

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

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