Quello di oggi è più uno snippet che uno script “from scratch“, il grosso del lavoro era stato già fatto in passato ed era già disponibile sotto forma di ExportMsolAccountSku.ps1 disponibile su GitHub nel mio repository O365 già dal 2017. Mi è stato chiesto di esportare tutti i possessori di licenza Office 365 (la nostra più bassa è la Online P1) ma includere un campo del CSV che riportasse il campo Company dell’utente. Questa modifica non è nativa del comando Get-MsolUser
di PowerShell, per questo motivo ho giocato con una query ulteriore nel ciclo ForEach
, la quale a sua volta è stata lavorata successivamente da RegEx.
Nello specifico
Nello specifico si tratta appunto di un’aggiunta tutto sommato banale all’interno del ForEach
che si occupa di estrarre le informazioni di licenza degli utenti registrati sul tenant di Office 365. Uso il Get-Recipient
per interrogare quanto più rapidamente possibile l’utenza e ne catturo il campo Company. A quel punto pulisco la stringa che viene proposta come fosse un array e tiro fuori esclusivamente il nome della società di appartenenza. Questa “sciocchezza” costa comunque molto in termini di velocità di estrazione dei dati, le performance rispetto allo script originale non modificato sono nettamente più basse, me ne faccio una ragione perché tutto funziona correttamente e ottengo comunque il risultato, pur attendendo un paio di minuti in più circa.
$Company = Get-Recipient $_.UserPrincipalName | select Company $Pattern = [Regex]::new('(?<==)(.*)(?=})') $ExitCompany = $Company | Select-String $Pattern -AllMatches
Dato che l’elemento centrale della richiesta era poi diventato l’ottenere nome, cognome, società e indirizzo di posta elettronica dell’intestatario della licenza Office 365 ho riportato in auge il vecchio metodo di estrazione dati e costruzione dell’array (quindi del CSV prodotto), il quale prevedeva di inserire una riga unica del file per ciascun utente, con in coda la totalità delle licenze a lui assegnate. Il risultato completo è disponibile su Gist nel caso in cui dovesse tornarti utile:
Questo è quanto, nulla di così devastante rispetto al lavoro originale sia chiaro, è solo un esercizio neanche tanto di stile che apre però ulteriori possibilità di arricchire il file CSV di estrazione delle licenze in uso sul tuo tenant Office 365. In caso di dubbi sai già che l’area commenti è a tua disposizione.
Grazie a powershellexplained.com/2017-07-31-Powershell-regex-regular-expression
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! :-)

Se hai correzioni o suggerimenti puoi lasciare un commento nell'apposita area qui di seguito o contattarmi privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! Satispay / PayPal / Buy Me A Coffee / Patreon