PowerShell Core 6.0: una nuova era ha inizio

Windows PowerShell

Da qualche giorno è disponibile una nuova versione di Windows PowerShell, giunta ormai alla sesta versione. La grande novità risiede nell’introduzione della versione Core, che ha l’obiettivo di portare l’utilizzo della shell Microsoft su tutti i sistemi operativi diversi da Windows e di alleggerire la struttura della shell stessa che per garantire la retro compatibilità con il passato, ha spesso creato qualche problema. PowerShell Core si basa su .NET Core 2.0, mentre Windows PowerShell si basa sull’intero stack di .NET Framework; le versioni supportate sono attualmente le seguenti:

  • Windows 7, 8.1, and 10
  • Windows Server 2008 R2, 2012 R2, 2016
  • Windows Server Semi-Annual Channel
  • Ubuntu 14.04, 16.04, and 17.04
  • Debian 8.7+, and 9
  • CentOS 7
  • Red Hat Enterprise Linux 7
  • OpenSUSE 42.2
  • Fedora 25, 26
  • macOS 10.12+

Installazione

Per installare PowerShell Core 6.0 bisogna scaricare il setup direttamente da GitHub, a seconda del vostro sistema operativo. Una volta fatto, si potrà eseguire il programma.

Conclusa l’installazione, si potrà eseguire la nuova versione oppure richiamarla dal prompt, tramite il comando pwsh.exe, figura 2, o pwsh per ambienti Linux, figura 3.


Figura 2 – PowerShell in Windows

 
Figura 3 – PowerShell in Linux

Windows PowerShell e PowerShell Core coesistono e possono eseguiti in ambienti separati e questo è uno dei motivi che rende la versione Core più flessibile e capace di aggiornarsi senza impattare su script esistenti.

E’ però importante ricordare che PowerShell Core 6.0 non utilizza gli stessi cmdlet della versione Full; la prova la potete avere se all’interno della vostra macchina avete a bordo Hyper-V: eseguendo il comando Get-VM da PowerShell Core riceverete un errore, diversamente dalla versione Windows PowerShell. I moduli attualmente disponibili (Get-Module -ListAvailable) sono i seguenti:

  • CimCmdlets
  • Microsoft.PowerShell.Archive
  • Microsoft.PowerShell.Diagnostics
  • Microsoft.PowerShell.Host
  • Microsoft.PowerShell.Management
  • Microsoft.PowerShell.Security
  • Microsoft.PowerShell.Utility
  • Microsoft.WSMan.Management
  • PackageManagement
  • PowerShellGet
  • PSDesiredStateConfiguration
  • PSDiagnostics
  • PSReadLine

Come si può notare sono mancanti i più importanti cmdlet per fare amministrazione dei server, in quanto il team di PowerShell sta lavorando con i vari team di prodotto per validare i nuovi comandi. GitHub sarà il repository dove trovare i nuovi comandi, oltre al comando mostrato in precedenza. Nel frattempo è possibile eseguire i seguenti comandi per importare il modulo WindowsPS capace di sfruttare i cmdlet di Windows PowerShell: Install-Module WindowsPSModulePath -Force e Add-WindowsPSModulePath

Conclusioni

PowerShell Core si pone come un nuovo punto di riferimento per la gestione degli ambienti Windows, e non solo, grazie all’implementazione di nuove funzionalità ad un codice sempre più leggero ed un codice capace di lavorare con il mondo Linux/Unix a 360 gradi.

Link Utili