Le licenze Microsoft 365 sono una delle voci di spesa IT più facili da sprecare: utenti che non accedono da mesi ma hanno ancora una licenza, shared mailbox licenziate inutilmente, licenze assegnate due volte (diretta + da gruppo). Con PowerShell si fa luce in pochi minuti. Abbiamo raccolto 10 script pronti in un toolkit scaricabile.
🛠️ Scarica il toolkit: Toolkit PowerShell licenze Microsoft 365 (10 script) — gratuito, codice originale SynSphere, archivio ZIP. Questo articolo spiega cosa fa ciascuno script.
Prerequisiti (validi per tutti gli script)
- PowerShell 5.1+ o PowerShell 7.
- Microsoft Graph PowerShell SDK:
Install-Module Microsoft.Graph -Scope CurrentUser. - Per lo script sulle shared mailbox serve anche
ExchangeOnlineManagement. - Account amministratore con autenticazione moderna (MFA): niente password negli script.
Ogni script è autonomo, parametrico e commentato; le operazioni di scrittura supportano -WhatIf per simulare prima di applicare.
📊 Reporting e inventario
- Report licenze (
01) — tutti gli utenti licenziati con gli SKU assegnati e lo stato dell’account. Il punto di partenza per qualsiasi analisi. - Report SKU sottoscritti (
02) — unità acquistate, consumate e in warning (utile per capacity planning e per individuare le sottoscrizioni vicine al rinnovo). - Gruppi con licenze (
05) — mappa il group-based licensing del tenant: quali gruppi assegnano quali licenze e a quanti membri. - Path di assegnazione (
06) — per ogni licenza dice se è diretta o ereditata da un gruppo. Fondamentale prima di rimuovere una licenza (quella ereditata si toglie dal gruppo, non dall’utente). - Report group-based (
07) — solo le assegnazioni da gruppo, con il gruppo di origine ed eventuali errori di assegnazione.
💰 Ottimizzazione dei costi
- Licenze inutilizzate (
09) — utenti licenziati che non accedono da più di N giorni (o mai): candidati a recupero licenza. È il modo più rapido per tagliare spesa senza impatto. - Shared mailbox licenziate (
04) — le caselle condivise di norma non richiedono licenza: questo script trova quelle licenziate per errore (spesa pura da recuperare). - Licenze sovrapposte (
08) — individua (e, su richiesta, rimuove con-WhatIf) le licenze dirette ridondanti quando lo stesso SKU è già garantito da un gruppo. - Report di spesa per utente (
10) — calcola il costo mensile per utente in base a un listino configurabile: utile per capire dove vanno i soldi delle licenze.
⚙️ Gestione e assegnazione
- Gestione licenze multi-azione (
03) — report, assegnazione e rimozione licenze, anche in massa da CSV. Con-WhatIfper simulare le operazioni prima di applicarle.
Da dove partire
Un percorso pratico di ottimizzazione in 3 passi:
- Fotografa la situazione con il report licenze (
01) e il report di spesa (10). - Trova gli sprechi: licenze inutilizzate (
09), shared mailbox licenziate (04), sovrapposizioni (08). - Agisci: riassegna o rimuovi con lo script di gestione (
03), sempre testando con-WhatIf.
È la stessa logica con cui evitiamo i costi nascosti di Microsoft 365: non serve comprare meno, serve pagare solo ciò che si usa.
Quando conviene un supporto
Su tenant grandi o con group-based licensing complesso, l’ottimizzazione licenze è un’attività ricorrente che fa parte di un servizio gestito. SynSphere offre assessment licenze e assistenza Microsoft 365 gestita, e usa questi stessi script (e altri) nelle sue automazioni PowerShell per Microsoft 365.
Scarica il toolkit e, se vuoi un assessment dei tuoi costi licenze, parla con un nostro consulente.