PowerShell: usare Try/Catch per un output pulito in caso di errore

| |

PowerShell Logo Gioxx.org

Data una lista di indirizzi di posta elettronica che ho raccolto in un file CSV, avevo bisogno di stampare a video un errore composto semplicemente dall’indirizzo di posta NON trovato, ignorando completamente quelli trovati (se non stampo nulla a video, tutto ok, procedi e non intasare la finestra di PowerShell con dell’inutile testo in più).
Se hai bisogno di una roba sbrigativa è chiaro che ti metti lì a lanciare un ciclo foreach che stampi a video un DisplayName (o qualsiasi altro dato relativo alla casella) aspettandoti il classico paragrafo d’errore color rosso con l’output che spiega che no, quell’indirizzo non risulta nel tuo tenant Exchange in Cloud, e a posto così.

Se però hai un minuto in più da investire, ecco che l’utilizzo del Try/Catch documentato da Microsoft all’indirizzo docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-exceptions può tornarti davvero utile, per tenere tutto più pulito e stampare a video realmente ciò che desideri. In pratica va bene l’errore, basta che tiri fuori ciò che chiedo io e non quello che vuoi tu:

Import-Csv .\listacaselle.csv | foreach {
    try {
        $utente = $_.indirizzo
        $find = Get-Recipient $utente -ErrorAction Stop | Select -ExpandProperty DisplayName
        }
        catch {
            Write-Host "$utente"
        }
}

Il codice qui sopra non farà altro che prendere in carico il file CSV listacaselle.csv (che si trova nella medesima cartella dello script PS1 lanciato) e cercherà informazioni sul Recipient (vedi contenuto del blocco Try).
Nel caso in cui la ricerca fallisca, procederà con il paragrafo Catch, quindi stamperà a video l’indirizzo di posta elettronica che non ha trovato (ma che stava analizzando perché presente nel file CSV datogli in pasto).

Questo è solo un esempio abbastanza banale e immediato per utilizzare il controllo degli errori, si può fare molto di più, sbircia la documentazione che ti ho proposto qualche riga più sopra e buon divertimento.

#StaySafe


Immagine di copertina: reddit.com/r/PowerShell/comments/eiyiwc/made_a_pscore_wallpaper

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.

PowerShell: usare Try/Catch per un output pulito in caso di errore 1 GWall

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è! Puoi usare Satispay, PayPal, Buy Me A Coffee o Patreon :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments