Il metodo più semplice ed utilizzato dagli amministratori di sistema per l’assegnazione delle licenze è sicuramente l’interfaccia di amministrazione di Microsoft 365.

In questo breve articolo vedremo come utilizzare PowerShell per verificare ed assegnare rapidamente le licenze agli account in Microsoft 365.

Avviate PowerShell con diritti di amministratore e procedete con l’installazione del modulo MSOnline con il seguente comando:

Install-Module -Name MSOnline

Terminata l’installazione del modulo, lanciate il comando Connect-MSOnline per il collegamento ai servizi Microsoft 365 con utenza amministrativa.

Per verificare le sottoscrizioni attive, lanciate il comando:

Get-MsolAccountSku


Nel mio caso, ho a disposizione le seguenti sottoscrizioni:

AccountSkuIdProduct nameActiveUnitsConsumedUnits
EMSPREMIUMENTERPRISE MOBILITY + SECURITY E51010
ENTERPRISEPREMIUMOffice 365 E51010
DESKLESSPACKOFFICE 365 F320
Win10_VDA_E3Windows 10 Enterprise E3101

Per la tabella completa di tutte le sottoscrizioni disponibili in Microsoft 365 e relativi ID, vi invito a leggere la documentazione ufficiale:

Product names and service plan identifiers for licensing – Azure AD | Microsoft Docs

Lanciando il seguente comando è possibile verificare i servizi disponibili nella sottoscrizione interessata (Cambiate il valore in grassetto con l’AccountSkuId interessato).

Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq “ENTERPRISEPREMIUM”} | ForEach-Object {$_.ServiceStatus}

Scenario: L’obiettivo della mia organizzazione è quello di assegnare rapidamente una licenza Windows 10 Enterprise E3 a tutti gli utenti che sono già in possesso di una licenza Office 365 E5.

AccountSkuIdProduct Name
ENTERPRISEPREMIUMOffice 365 E5
Win10_VDA_E3Windows 10 Enterprise E3

Comando PowerShell per export degli utenti con licenza Office 365 E5 in formato CSV:

N.B. Modificate i valori in grassetto in base alle vostre esigenze.

Get-MsolUser | Where-Object {($_.licenses).AccountSkuId -match “EnterprisePremium“} | Select UserPrinciPalName | Export-csv C:\temp\EnterprisePremium.csv -NoTypeInformation -Encoding UTF8

Script powershell per import degli utenti dal file .csv generato in precedenza ed assegnazione automatica della licenza Windows 10 Enterprise E3.

$License = Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq “Win10_VDA_E3“}

$users = Import-Csv -Path C:\temp\EnterprisePremium.csv

foreach($user in $users){
Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -AddLicenses $License.AccountSkuId

}

Documentazione ufficiale: Assign Microsoft 365 licenses to user accounts with PowerShell – Microsoft 365 Enterprise | Microsoft Docs