PowerShell per Tutti: Lo Scripting Cross-Platform con PowerShell Core

Script PowerShell

Per anni, PowerShell è stato legato a doppio filo con Windows. Ma nel 2016, Microsoft ha compiuto una mossa rivoluzionaria: ha annunciato PowerShell Core (oggi semplicemente "PowerShell"), una versione open-source, multipiattaforma e costruita su .NET Core (ora solo .NET).

Questo significa che oggi puoi installare ed eseguire PowerShell nativamente su Linux e macOS, e scrivere script che funzionano su tutti e tre i sistemi operativi.

Perché Eseguire PowerShell su Linux?

Gli amministratori di sistema Linux hanno già shell potentissime come Bash. Allora perché dovrebbero usare PowerShell?

  • Pipeline a Oggetti: Il principale vantaggio. Per chi preferisce manipolare oggetti strutturati invece che testo, la pipeline a oggetti di PowerShell è un'alternativa potente e robusta a `grep`, `sed` e `awk`.
  • Competenze Trasferibili: Per gli amministratori che gestiscono ambienti ibridi (con server sia Windows che Linux), poter usare un unico linguaggio di scripting per entrambi i mondi è un enorme vantaggio in termini di produttività.
  • Interazione con Servizi Microsoft: PowerShell è lo strumento di riferimento per gestire servizi cloud come Microsoft Azure e Office 365. Poterlo fare da una macchina Linux semplifica enormemente il lavoro in ambienti DevOps.
  • Codice Leggibile: La sintassi Verbo-Nome (`Get-Process`, `Stop-Service`) è considerata da molti più leggibile e facile da scoprire rispetto ai comandi spesso criptici di Linux.

Compatibilità e Limiti

PowerShell Core condivide lo stesso motore e la maggior parte dei cmdlet di base su tutte le piattaforme. Tuttavia, i cmdlet che interagiscono con funzionalità specifiche di un sistema operativo non saranno disponibili sugli altri. Ad esempio, `Get-WmiObject` (per interrogare WMI) funziona solo su Windows, mentre `Get-Process` funziona su tutte le piattaforme ma restituisce oggetti con proprietà diverse a seconda del sistema operativo.

La sfida per scrivere script veramente cross-platform è quella di usare i cmdlet e le API .NET che sono disponibili ovunque, o di inserire della logica condizionale per eseguire comandi diversi in base al sistema operativo su cui lo script sta girando.

PowerShell Core ha trasformato PowerShell da uno strumento solo per Windows a un potente linguaggio di scripting per l'era del cloud e del DevOps multipiattaforma.

Hai bisogno di una soluzione su misura?

Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.

Richiedi una consulenza