Microsoft ha pubblicato la versione più recente di PowerShell, il suo linguaggio di scripting e strumento per l’automazione che da tempo in Windows 10 ha assunto una posizione di primo piano scalzando anche il vecchio prompt dei comandi (cmd
).
Disponibile nelle versioni per Windows 10, Windows 8.1, Windows 7, Windows Server (2008R2, 2012, 2016 e 2019), macOS oltre che per diverse distribuzioni Linux, PowerShell 7 introduce un buon numero di novità tra cui la parallelizzazione della pipeline, nuovi operatori e cmdlet.
I tecnici di Microsoft hanno aggiunto che PowerShell 7 offre anche una migliore retrocompatibilità così che gli utenti che ancora oggi utilizzano versioni precedenti possano servirsi delle nuove funzionalità introdotte per la prima volta in PowerShell Core (lo scorso anno l’azienda guidata da Satya Nadella annunciò che la successiva versione sarebbe stata battezzata PowerShell Core “PowerShell 7” invece di PowerShell Core 6.3).
All’epoca Microsoft dichiarò di avere intenzione di aggiornare anche PowerShell 5.1 (alias “Windows PowerShell“), l’ultima versione compatibile esclusivamente con i sistemi Windows.
Su una macchina Windows 10 completamente aggiornata, infatti, a tutt’oggi viene utilizzato per default PowerShell 5.1 (basta digitare $PSVersionTable
) e viene mostrato il messaggio “Prova la nuova PowerShell multipiattaforma“.
Di PowerShell abbiamo parlato in varie occasioni (Windows PowerShell, come funziona l’interfaccia che sostituisce il prompt dei comandi) spiegando anche come arricchire i propri script con una comoda interfaccia grafica (PowerShell, come creare script con interfaccia grafica) e impostare la nuova finestra Windows Terminal (Windows Terminal: prompt dei comandi avanzato per Windows 10).
Differenze tra Windows PowerShell e PowerShell Core/PowerShell 7
Come accennato in precedenza Windows PowerShell è integrato direttamente in Windows mentre PowerShell Core è disponibile come download a parte.
Inoltre, a differenza di Windows PowerShell, PowerShell Core è multipiattaforma. Per installare PowerShell 7 è possibile fare riferimento a questa pagina: si troveranno tutte le versioni disponibili per Windows, MacOS e Linux. Ci sono anche versioni di PowerShell Core progettate per funzionare su processori ARM.
Per quanto sia bello avere una versione multipiattaforma di PowerShell, è importante ricordare questo strumento è stato originariamente progettato per funzionare solo in ambiente Windows: alcuni dei cmdlet non sono quindi applicabili su altre piattaforme.
Windows PowerShell, ad esempio, offre un ampio ventaglio di cmdlet per la gestione di Hyper-V ma la soluzione per la virtualizzazione Microsoft non funziona né su Linux né su macOS.
Anche nella versione per Windows di PowerShell Core, tuttavia, mancano molti cmdlets (almeno per ora). Se volete sapere quanti cmdlets mancano, allora inserite i seguenti due comandi sia in Windows PowerShell che in PowerShell Core. Questi comandi contano il numero totale di cmdlets disponibili.
Provando a digitare sia in Windows PowerShell che in PowerShell Core i seguenti due comandi si otterranno il numero di cmdlet supportate: come si potrà verificare, il responso non coinciderà:
$num = Get-Command * | Measure
$num.Count
Con i comandi seguenti si otterrà il numero dei moduli disponibili:
$num = Get-Module -ListAvailable | Measure
$num.Count
PowerShell Core non sostituirà Windows PowerShell. Anzi, il piano a lungo termine di Microsoft prevede di rendere le due soluzioni maggiormente compatibili. PowerShell Core/PowerShell 7 è disponibile sotto licenza opensource (MIT) ed essendo un software LTS (Long Term Support) sarà supportato almeno fino a dicembre 2022.
L’annuncio di Microsoft circa il rilascio ufficiale di PowerShell 7 è consultabile in questa pagina.