Sulla falsa riga di quanto già riportato nell’articolo dedicato all’applicazione di massa di licenze via PowerShell 7 e Microsoft Graph (Licenze Microsoft 365: modifica bulk via PowerShell 7 e Graph) mi sono ritrovato a dover assegnare in blocco delle licenze a nuovi utenti appena atterrati in Active Directory (quindi anche in Azure Active Directory) ma non riuscirci a causa dell’errore riportato nell’oggetto dell’articolo. Una rapida ricerca sul web mi ha portato a comprendere che senza un dettaglio (proprio in Azure Active Directory) non potevo completare l’opera perché Microsoft deve prima accertarsi della location scelta per far operare quegli account, poiché potrebbero esserci differenze di licenza in base al paese selezionato.
Nel caso te lo fossi perso l’altra volta, ti ricordo che c’è una pagina ufficiale Microsoft che riporta i vari prodotti e i relativi SkuId: learn.microsoft.com/en-us/azure/active-directory/enterprise-users/licensing-service-plan-reference, è su questa che mi sono basato per provare ad associare ciò che mi serviva. Per correggere però il tiro e aggirare l’ostacolo ho dovuto prima operare un’altra modifica (sempre in batch) su Azure Active Directory. Servirà quindi prima di tutto caricare il giusto modulo e collegarsi:
Import-Module AzureAD -UseWindowsPowerShell Connect-AzureAD
Fatto ciò, quello che interessa lo specifico caso è relativo alla “Usage Location“. Per ottenere quella impostata su un particolare utente basterà eseguire un:
Get-AzureADUser -ObjectId mario.rossi@contoso.com | Select UsageLocation
Avendo sbattuto il muso contro l’errore nel titolo di questo articolo mi aspettavo già che il campo Usage Location fosse vuoto, e così è stato. Ho quindi utilizzato lo stesso identico CSV che mi serviva per applicare le nuove licenze M365 per impostare prima la Usage Location (che poi è tutto spiegato anche nel documento ufficiale di Microsoft all’indirizzo learn.microsoft.com/en-us/microsoft-365/enterprise/configure-user-account-properties-with-microsoft-365-powershell):
Import-Csv "C:\temp\E3-NoSkype.csv" | % {Set-AzureADUser -ObjectId $_.mailbox -UsageLocation "IT"}
Una volta impostata la Usage Location di tutti gli utenti (il CSV a cui faccio riferimento contiene una sola colonna con intestazione “mailbox” e subito sotto gli indirizzi di posta di tutti gli utenti coinvolti nella modifica) ho potuto poi lanciare lo script di assegnazione della licenza di cui ti avevo già parlato nell’altro articolo, modificata per escludere Skype for Business.
In caso di dubbi sai già cosa fare, l’area commenti è a tua totale disposizione :-)
#StaySafe
Credits:
learn.microsoft.com/en-us/powershell/module/azuread/get-azureaduser
learn.microsoft.com/en-us/microsoft-365/enterprise/configure-user-account-properties-with-microsoft-365-powershell
debajmecrm.com/how-to-resolve-license-cannot-be-assigned-to-a-user-without-a-usage-location-specified-error-when-assigning-license-to-guest-user-in-azure
tech.nicolonsky.ch/office-usage-location-azure-automation
stackoverflow.com/a/75092497/2220346
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)