Nelle puntate precedenti: Report licenze di Office 365 via PowerShell 7 e Microsoft Graph.
Non ho voluto modificare nuovamente il vecchio articolo perché – rispetto al passato – stavolta ho sostituito tutte le vecchie chiamate al modulo MSOnline e mi baso esclusivamente su Graph per ottenere ciò che mi serve. Questo permette allo script di essere più veloce e certamente più compatibile con PowerShell 7, che poi è il risultato che desideravo raggiungere.
Il codice è già parte integrante della mia scatola dei giocattoli (github.com/gioxx/ps.toybox), se stai utilizzando quindi il mio modulo vuol dire che lo hai già pronto a eseguire quanto richiesto, diversamente ti faccio sbirciare qui di seguito il codice preciso che riguarda questa chiamata così che tu possa salvarlo magari in un tuo file PS1 e usarlo secondo necessità.
Il nuovo script
Avevo già lavorato per isolare e far utilizzare al mio script un file JSON esterno che potesse raccogliere le licenze disponibili su Microsoft 365 fornendo una “tabella di conversione” tra nome tecnico e nome più “amichevole” della licenza (github.com/gioxx/ps.toybox/commit/dfe3963624ec29843d3b5e8c1cead63c9b17613f), ma grazie all’articolo di Martin Heusser ho scoperto che Microsoft ne mette a disposizione uno davvero molto completo e l’ho trasformato (in origine si tratta di un file CSV) per poterlo incorporare nel JSON precedentemente pubblicato.
A questo punto ho pulito un po’ lo script e il risultato finale è il seguente:
Rispetto al passato – noterai tu stesso – lo script conta molte meno righe perché andrà a leggere il contenuto del file JSON per poter effettuare la conversione e restituirti il nome riconoscibile della licenza assegnata all’utente finale. Ti restituirà il DisplayName
dell’utente, il suo UserPrincipalName
, il suo PrimarySmtpAddress
e infine la licenza. Se non specificherai nulla da riga di comando (puoi passare il percorso completo dove salvare il file CSV), il file verrà generato nella cartella C:\Temp
, lo troverai come O365-User-License-Report_$($Today).csv
(al posto di Today verrà ovviamente inserita data odierna).
Nel caso ti stessi chiedendo a cosa serve la funzione SaveFileWithProgressiveNumber (magari perché lo script ti sta restituendo errore) puoi dare un’occhiata qui: github.com/gioxx/ps.toybox/blob/198bd3e73d68780f10eaffb274df733471b76f3a/Gioxx.ToyBox/Gioxx.ToyBox.psm1#L3.
In caso di dubbi, lo sai già, l’area commenti è a tua totale disposizione :-)
#StaySafe