Completamento dei comandi con riconoscimento del contesto intelligente con il modulo PowerShell Az Predictor

Il modulo PowerShell Az Predictor è un’estensione per PowerShell che fornisce funzionalità avanzate di autocompletamento e suggerimenti per i cmdlet del modulo Azure PowerShell (Az). È una parte del progetto PSReadLine, che mira a migliorare l’esperienza dell’utente nella shell di PowerShell. Az Predictor è progettato per rendere l’uso di Azure PowerShell più efficiente e intuitivo, soprattutto per quelli che gestiscono complesse infrastrutture di Azure attraverso la shell di PowerShell.

Az Predictor fornisce suggerimenti in tempo reale mentre digiti i comandi. Questi suggerimenti sono basati sull’analisi dei comandi più comunemente usati in Azure PowerShell, aiutando a costruire comandi Az complessi più facilmente.Con l’autocompletamento e i suggerimenti intelligenti, gli utenti possono scrivere comandi più velocemente e con meno errori. È particolarmente utile per comandi lunghi o complicati.

Il modulo impara dai comandi che usi più frequentemente, migliorando la pertinenza dei suggerimenti nel tempo. Essendo una parte del progetto PSReadLine, lavora in tandem con altre funzionalità di miglioramento della riga di comando come la colorazione della sintassi, la modifica del comando e la gestione della cronologia.

Per gli utenti che conoscono poco Azure PowerShell, Az Predictor può essere un ottimo strumento didattico, poiché fornisce suggerimenti su comandi e parametri, aiutando gli utenti a imparare mentre lavorano. Inoltre gli utenti possono personalizzare il comportamento del modulo, come la frequenza e il tipo di suggerimenti mostrati.

Prerequisiti

Per utilizzare il modulo PowerShell Az Predictor è necessario usare la versiobe PowerShell 7.2 o successive. Per verificare quale versione state utilizzando potete usare il comando  $PSVersionTable.PSVersion

Figura 1: Verifica della versione PowerShell in uso

Sia Windows 10 che Windows 11 non hanno la versione PowerShell 7 installata di default, quindi sarà necessario prima installarla. Trovate tutti i dettagli alla pagina Installazione di PowerShell in Windows – PowerShell | Microsoft Learn

PowerShell 7 ha introdotto diverse miglioramenti e cambiamenti significativi rispetto alle versioni precedenti, in particolare rispetto a Windows PowerShell 5.1, che era la versione più diffusa prima del rilascio di PowerShell 7.

Vi dettagli qui di seguito alcune delle differenze principali e i vantaggi di PowerShell 7:

  • Cross-Platform: Una delle differenze più significative è che PowerShell 7 è una piattaforma cross-platform. Mentre Windows PowerShell era limitato a Windows, PowerShell 7 può essere eseguito su Windows, Linux e macOS, rendendo gli script e i moduli più versatili e ampiamente utilizzabili.
  • Basato su .NET Core: PowerShell 7 è basato su .NET Core (ora .NET 5 e versioni successive), che è più leggero e performante rispetto al .NET Framework utilizzato da Windows PowerShell. Ciò porta a miglioramenti nelle prestazioni e nella portabilità.
  • Nuovi cmdlet e funzionalità: PowerShell 7 introduce nuovi cmdlet e migliora quelli esistenti. Ad esempio, il cmdlet ForEach-Object ha ricevuto miglioramenti significativi in termini di prestazioni.
  • Compatibilità con gli script esistenti: PowerShell 7 mira a mantenere una forte compatibilità con gli script Windows PowerShell esistenti, permettendo agli utenti di migrare senza dover riscrivere il codice.
  • Miglioramenti nell’error handling: Sono state apportate modifiche significative nel modo in cui PowerShell 7 gestisce e visualizza gli errori, rendendo più facile per gli utenti comprendere e risolvere i problemi negli script.
  • Miglioramenti nell’Interfaccia Utente: L’interfaccia utente di PowerShell 7 include miglioramenti come la colorazione della sintassi e l’integrazione con strumenti come PSReadLine per una migliore esperienza di editing.
  • Supporto a Lungo Termine (LTS): PowerShell 7.0 è stato il primo rilascio a ricevere un supporto a lungo termine, il che significa che riceverà aggiornamenti e correzioni di sicurezza per un periodo di tempo esteso.
  • Parallelizzazione: PowerShell 7 ha introdotto il cmdlet ForEach-Object -Parallel, che permette di eseguire script block in parallelo, migliorando notevolmente le prestazioni per alcune operazioni.

Per installare PowerShell 7 in Windows il metodo più veloce è l’utilizzo del comando winget. Con il comando winget search Microsoft.PowerShell potete visualizzare la versione più recente disponibile per PowerShell 7, mentre potete effettuare l’installazione con il comando winget install –id Microsoft.Powershell –source winget

Windows Package Manager (anche conosciuto come winget) è una soluzione gratuita e open-source di gestione pacchetti completa costituita da uno strumento da riga di comando (winget) e da un set di servizi per l’installazione di applicazioni in Windows 10 e Windows 11.

Uno strumento di gestione pacchetti è un sistema o un set di strumenti usati per automatizzare l’installazione, l’aggiornamento, la configurazione e l’utilizzo del software. La maggior parte degli strumenti di gestione pacchetti è progettata per individuare e installare gli strumenti di sviluppo, ma non solo. Probabilmente molti di voi conosceranno prodotti simili, come Chocolatey, Scoop, Ninite, AppGet, Npackd e OneGet.

Per maggiori informazioni vi invito a leggere la mia guida NicolaFerrini.it – Windows Package Manager: Installazioni semplificate delle applicazioni In Windows 10 e in Windows 11

Figura 2: Installazione di PowerShell 7 in windows 11 con il tool winget

Terminata l’installazione potete procedere alla verifica della versione di PowerShell con il comando $PSVersionTable.PSVersion.

Figura 3: Verifica dell’installazione di PowerShell 7 in Windows 11

Una volta che PowerShell v7 è stata installata siete pronti per installare il modulo Az Predictor.

La configurazione necessaria per Az Predictor richiede che siano installate:

Il modulo PowerShell PSReadLine è un’estensione per PowerShell che migliora l’interfaccia utente interattiva. Fornisce funzionalità avanzate per la riga di comando, migliorando significativamente l’esperienza dell’utente. PSReadLine offre funzionalità avanzate di editing di testo simili a quelle che trovate in molti editor di testo moderni, incluso l’uso di scorciatoie da tastiera per navigare e modificare la riga di comando. Migliora la leggibilità del codice mostrando diversi elementi della sintassi in colori differenti, proprio come fanno molti editor di codice e fornisce suggerimenti intelligenti e completamento automatico dei comandi, dei parametri e dei nomi di file, basandosi sulla tua storia di comandi e sulla sintassi dei comandi stessi.

PSReadLine è diventato uno strumento essenziale per gli utenti PowerShell, specialmente per coloro che lavorano frequentemente con la riga di comando, poiché rende l’interazione più efficiente e piacevole.

Per installare la versione più recente di PSReadLine utilizzate il comando PowerShell Install-Module -Name PSReadline.

Figura 4: Installazione del modulo PowerShell PSReadLine

Installazione del modulo PowerShell Az

Se non lo avete ancora fatto, procedete all’installazione del modulo PowerShell Az. Trovate tutti i dettagli alla pagina Introduzione al modulo Azure Az di PowerShell | Microsoft Learn.

Il modulo Az in PowerShell è uno strumento essenziale per gli amministratori di sistema, gli sviluppatori e i professionisti IT che lavorano con Microsoft Azure, poiché fornisce un modo potente e flessibile per gestire le risorse di Azure attraverso la linea di comando e lo scripting. È un insieme di cmdlet per la gestione delle risorse di Microsoft Azure ed è il modulo ufficiale di PowerShell per Azure, fornito da Microsoft. È utilizzato per interagire con le varie risorse e servizi di Azure direttamente dalla riga di comando di PowerShell, rendendo la gestione di Azure efficiente e accessibile agli script. Supporta la maggior parte dei servizi Azure, consentendo di gestire quasi tutti gli aspetti di Azure, inclusi calcolo, rete, storage, identità, database, ed è disponibile per Windows, macOS e Linux, il che significa che gli utenti possono gestire le risorse di Azure da qualsiasi sistema operativo.
Microsoft aggiorna regolarmente il modulo Az per supportare nuove funzionalità e servizi in Azure, oltre a migliorare i cmdlet esistenti. Nel avevo già parlato nel mio articolo Modulo Azure PowerShell Az: la rivoluzione della riga di comando per interagire con Microsoft Azure – ICT Power

Figura 5: Installazione del modulo PowerShell Az

Installazione del modulo PowerShell Az Predictor

Installate il modulo Az.Tools.Predictor di PowerShell tramite il comando Install-Module -Name Az.Tools.Predictor.

Figura 6: Installazione del modulo PowerShell Az Predictor

Abilitate il modulo PowerShell Az Predictor con il comando PowerShell Enable-AzPredictor -AllSession. Terminata l’abilitazione potete procedere alle personalizzazioni, come ad esempio quella relativa alla visualizzazione preferita per i suggerimenti.

Per impostare la visualizzazione preferita per i suggerimenti avete due modalità:

  • Abilitare la visualizzazione elenco con il comando Set-PSReadLineOption -PredictionViewStyle ListView
  • Abilitare la visualizzazione inline con il comando Set-PSReadLineOption -PredictionViewStyle InlineView

NOTA : È possibile passare da una modalità di visualizzazione all’altra con il tasto F2 .

Figura 7: Abilitazione del modulo PowerShell Az Predictor e successive personalizzazioni

Dopo l’installazione e l’abilitazione, il modulo PowerShell Az Predictor viene caricato nel profilo di PowerShell e potrà essere utilizzato per completare i comandi, come mostrato nelle due figure sotto:

Figura 8: Visualizzazione INLINE

Figura 9: Visualizzazione LIST

Conclusioni

Il modulo Az Predictor in PowerShell trasforma radicalmente l’interazione con Microsoft Azure, portando una serie di miglioramenti che si estendono ben oltre la semplice scrittura di comandi. Questo strumento rende l’esperienza di gestione di Azure non solo più efficiente ma anche più intuitiva, specialmente per coloro che stanno imparando a navigare nel vasto ecosistema di Azure. La sua capacità di suggerire comandi in tempo reale riduce notevolmente gli errori e accelera il processo di scrittura del codice, un vantaggio inestimabile in un ambiente di lavoro dinamico dove ogni secondo conta.

Per i professionisti esperti Az Predictor è un alleato potente che affina l’efficienza, mentre per i principianti funge da tutor interattivo, guidandoli attraverso la complessità dei comandi Azure. Inoltre, l’adattabilità e la personalizzazione che offre Az Predictor permettono agli utenti di plasmare l’ambiente in base alle proprie necessità, elevando l’esperienza di utilizzo di PowerShell a un livello superiore.

In poche parole, il modulo Az Predictor non è solo uno strumento che migliora l’esperienza utente; è un catalizzatore che potenzia l’efficacia con cui professionisti IT e sviluppatori interagiscono con le risorse Azure, rendendo la gestione delle infrastrutture cloud più affidabile, rapida e accessibile.