PowerShell su Windows e Linux - cosa cambia e come iniziare

6 giugno 2026

Tux il pinguino Linux accanto al logo PowerShell. Scopri windows powershell a cosa serve per gestire il tuo sistema.

Indice

Quando un’attività su Windows si ripete ogni giorno, passare da finestre e menu può diventare più lento che scrivere pochi comandi. PowerShell serve proprio a controllare il sistema, automatizzare operazioni e gestire file, processi, configurazioni e servizi con maggiore precisione, anche su Linux. In questa guida chiarisco cosa può fare, quali differenze esistono tra Windows PowerShell e PowerShell 7 e da dove iniziare senza correre rischi.

PowerShell trasforma operazioni ripetitive in procedure rapide e controllabili

  • È una shell, un linguaggio di scripting e una piattaforma per l’automazione.
  • Gestisce Windows tramite comandi, script, moduli e strumenti amministrativi.
  • Funziona anche su Linux e macOS nelle versioni moderne basate su .NET.
  • Lavora con oggetti, quindi conserva proprietà e dati strutturati nella pipeline.
  • PowerShell 7 e Windows PowerShell 5.1 possono convivere, ma non sono la stessa cosa.

Che cos’è PowerShell e a cosa serve davvero

PowerShell è l’ambiente a riga di comando di Microsoft pensato per amministrare sistemi e automatizzare attività. Non è soltanto una versione più moderna del Prompt dei comandi: comprende una shell, un linguaggio di scripting e un sistema di moduli che permette di estendere i comandi disponibili.

La differenza più importante rispetto a strumenti più semplici è il modo in cui tratta i risultati. Un comando PowerShell restituisce spesso oggetti con proprietà e metodi, non una semplice sequenza di testo. Questo rende più affidabili i filtri, gli ordinamenti e le elaborazioni successive.

Per esempio, questo comando mostra i processi che stanno usando più CPU:

Get-Process |
    Sort-Object CPU -Descending |
    Select-Object -First 5 Name, CPU

La barra verticale, chiamata pipeline, passa il risultato di un comando a quello successivo. Io la considero il punto in cui PowerShell smette di essere una semplice console e diventa uno strumento di lavoro vero, soprattutto quando bisogna analizzare molti elementi senza aprire decine di finestre.

Le attività più utili su Windows

Su Windows PowerShell viene utilizzato per controllare il computer, preparare postazioni, gestire utenti e intervenire su server. Non serve essere amministratori di sistema per trarne beneficio: anche un utente esperto può usarlo per velocizzare operazioni quotidiane.

Gestire file e cartelle

I cmdlet Get-ChildItem, Copy-Item, Move-Item e Remove-Item permettono di elencare, copiare, spostare o eliminare file. Un esempio pratico conta tutti i file presenti in una cartella:

Get-ChildItem -Path "C:\Documenti" -File |
    Measure-Object

Per sommare le dimensioni dei file si può usare una proprietà numerica, ma conviene verificare sempre il percorso prima di eseguire comandi che modificano o cancellano dati. Un comando distruttivo lanciato nella cartella sbagliata può avere conseguenze molto più serie di un clic errato nell’Esplora file.

Controllare processi e prestazioni

Con Get-Process si possono individuare programmi bloccati, processi che consumano troppa memoria o applicazioni avviate senza motivo. Per una diagnosi rapida, il comando può essere combinato con Where-Object e Select-Object, così da mostrare solo i dati utili.

Get-Process |
    Where-Object CPU -gt 100 |
    Select-Object Name, Id, CPU

Il valore di CPU non è sempre disponibile nello stesso modo per ogni processo e può richiedere tempo per essere calcolato. Per questo lo considero un indicatore iniziale, non una diagnosi completa delle prestazioni.

Leggi anche: Come rendere il menu Start di Windows 11 simile a Windows 10

Automatizzare configurazioni e attività ripetitive

Uno script con estensione .ps1 può installare applicazioni, creare cartelle, raccogliere informazioni dal sistema o configurare decine di computer con una procedura coerente. In un ufficio, ad esempio, la stessa attività di preparazione può passare da un’ora manuale a pochi minuti, soprattutto quando coinvolge molte postazioni.

PowerShell è inoltre utilizzato con servizi Microsoft come Active Directory, Microsoft 365, Azure e strumenti di gestione aziendale. In questi casi si lavora attraverso moduli e cmdlet dedicati, che devono essere compatibili con la versione installata e con i permessi dell’account.

Windows PowerShell 5.1 e PowerShell 7 non sono la stessa cosa

Il nome crea spesso confusione. Windows PowerShell 5.1 è la versione tradizionale integrata in molte installazioni Windows, mentre PowerShell 7 è la linea moderna e multipiattaforma, sviluppata su .NET. Le due versioni possono essere installate insieme e avviate con comandi diversi.

Caratteristica Windows PowerShell 5.1 PowerShell 7
Sistemi supportati Soprattutto Windows Windows, Linux e macOS
Avvio tipico powershell.exe pwsh
Compatibilità Molti moduli Windows storici Cmdlet moderni e moduli multipiattaforma
Sviluppo Versione legacy Linea principale per nuove funzionalità

La scelta dipende dal lavoro da svolgere. Se uno script usa moduli progettati esclusivamente per Windows PowerShell, passare subito a PowerShell 7 può creare incompatibilità. Se invece si desiderano funzioni aggiornate, portabilità e gestione coerente tra sistemi diversi, la versione moderna è generalmente il punto di partenza più sensato.

Un errore comune consiste nel pensare che PowerShell 7 sostituisca automaticamente la versione 5.1. In realtà possono convivere, ma uno script deve essere testato nella shell corretta, perché comandi, moduli e comportamenti non sono sempre identici.

Che cosa cambia usando PowerShell su Linux

Monitoraggio sistema: CPU, RAM, rete e processi. Utile per capire a cosa serve Windows PowerShell per l'automazione.

PowerShell 7 può essere eseguito su diverse distribuzioni Linux e consente di usare lo stesso linguaggio per molte attività comuni. Comandi come Get-ChildItem, Get-Process, Set-Location e la pipeline funzionano in modo simile, anche se i percorsi e alcune funzionalità dipendono dal sistema operativo.

Questo è utile per chi amministra ambienti misti. Posso, per esempio, usare PowerShell per leggere file di configurazione, filtrare processi, trasformare dati JSON o coordinare operazioni tra server Windows e Linux senza cambiare completamente metodo di lavoro.
Esigenza Windows Linux
Gestione dei file Percorsi come C:\Dati Percorsi come /var/log
Servizi di sistema Strumenti e servizi Windows Spesso systemd e strumenti della distribuzione
Script comuni Buona compatibilità Buona compatibilità per cmdlet multipiattaforma
Moduli specifici Più ampia integrazione con Windows Dipende dal supporto Linux del modulo
La portabilità, però, non significa che ogni script sia universale. Un comando che modifica il Registro di sistema o interagisce con un servizio Windows non può essere trasferito su Linux senza adattamenti. La parte riutilizzabile è soprattutto il linguaggio, mentre le operazioni legate al sistema operativo vanno progettate caso per caso.

PowerShell, Prompt dei comandi e Bash a confronto

Il Prompt dei comandi rimane utile per comandi semplici e per la compatibilità con vecchi script batch. PowerShell diventa più interessante quando servono filtri, condizioni, cicli, oggetti e automazione. Bash, invece, è lo standard storico di molti ambienti Linux e continua a essere essenziale per amministratori che lavorano direttamente con strumenti Unix.

Strumento Punto di forza Quando sceglierlo
Prompt dei comandi Semplicità e compatibilità legacy Comandi Windows brevi o vecchi file batch
PowerShell Oggetti, moduli e automazione Gestione strutturata di Windows e ambienti misti
Bash Integrazione con strumenti Unix Amministrazione Linux e automazione nativa del sistema

PowerShell non deve per forza sostituire gli altri strumenti. In un ambiente Linux posso continuare a usare comandi nativi e richiamarli da PowerShell quando serve. La differenza pratica è che PowerShell offre una pipeline orientata agli oggetti, mentre molti comandi Unix lavorano principalmente su testo.

Per chi arriva dal Prompt dei comandi, alcuni alias come dir, ls e cd rendono l’ingresso più familiare. Io consiglio comunque di imparare i nomi reali dei cmdlet, perché sono più chiari negli script e riducono la dipendenza da abbreviazioni che possono variare tra ambienti.

Come iniziare senza trasformare PowerShell in un rischio

Il modo migliore per iniziare è procedere con comandi di sola lettura. Get-Help, Get-Command e Get-Member aiutano a capire che cosa esiste, come funziona un comando e quali proprietà contiene il risultato.

Get-Help Get-Process
Get-Command *Network*
Get-Process | Get-Member

Prima di eseguire modifiche, conviene aggiungere -WhatIf quando il cmdlet lo supporta. Questa opzione simula l’operazione e mostra l’effetto previsto senza applicarlo davvero. Non è disponibile per ogni comando, quindi non sostituisce una verifica manuale del percorso, dell’utente e dei dati coinvolti.

Un altro punto delicato è la Execution Policy, cioè la regola che stabilisce in quali condizioni gli script possono essere eseguiti. Non va trattata come un antivirus o come una barriera assoluta: serve soprattutto a ridurre esecuzioni accidentali e deve essere configurata in base alle regole dell’organizzazione.

Non eseguire script copiati da forum o messaggi senza averne letto il contenuto. Un file PowerShell può modificare impostazioni, scaricare componenti, creare utenti o cancellare dati con gli stessi privilegi dell’account che lo avvia. Per le attività importanti, preferisco testare prima in una macchina virtuale o in un ambiente non produttivo e registrare l’output.

Il modo più concreto per capire il suo valore

PowerShell dà il meglio quando elimina lavori ripetitivi e rende riproducibile una procedura. Un buon primo esercizio consiste nel creare uno script che raccolga informazioni sul computer, salvi un report e segnali eventuali anomalie. È abbastanza semplice per imparare, ma abbastanza realistico da mostrare la differenza rispetto a una serie di clic.

La regola che seguo è semplice: prima capire il comando, poi combinarlo nella pipeline e solo alla fine inserirlo in uno script. La velocità viene dopo la comprensione. In questo modo PowerShell diventa uno strumento affidabile per Windows e Linux, non una console piena di comandi copiati alla cieca.

Domande frequenti

PowerShell è una shell, un linguaggio di scripting e una piattaforma per l’automazione. A differenza del Prompt dei comandi, lavora spesso con oggetti dotati di proprietà e metodi, che possono essere filtrati e ordinati nella pipeline.

Windows PowerShell 5.1 è la versione legacy, soprattutto legata a Windows, mentre PowerShell 7 è multipiattaforma e si avvia con pwsh. Le due versioni possono convivere, ma i moduli e gli script devono essere testati nella shell corretta perché non sono sempre compatibili.

PowerShell 7 permette di gestire file, processi e dati JSON con cmdlet come Get-ChildItem e Get-Process. La portabilità non è completa: percorsi, servizi e moduli specifici di Windows richiedono adattamenti, mentre su Linux si usano spesso systemd e gli strumenti della distribuzione.

È consigliabile partire da comandi di sola lettura come Get-Help, Get-Command e Get-Member. Prima delle modifiche si può usare -WhatIf, quando disponibile, e per gli script importanti conviene fare prove in una macchina virtuale o in un ambiente non produttivo.

Valuta l'articolo

Valutazione: 0.00 Numero di voti: 0

Tag:

powershell pipeline bash scripting cmdlet

Condividi post

Anastasio Longo

Anastasio Longo

Il mio nome è Anastasio e nel campo dell'informatica, dell'intelligenza artificiale e delle soluzioni cloud ho maturato un'esperienza di 11 anni. Fin da quando ho iniziato a esplorare questi settori, sono rimasto affascinato dal potenziale trasformativo della tecnologia e dalla sua capacità di risolvere problemi complessi. Il mio obiettivo è rendere accessibili concetti che possono sembrare ostici, analizzando le tendenze emergenti e verificando le informazioni per offrire contenuti chiari, accurati e utili. Su bartolomeoalberico.it mi dedico a spiegare come l'AI e il cloud stiano plasmando il nostro futuro, cercando sempre di organizzare la conoscenza in modo che sia facilmente comprensibile per tutti.

Scrivi un commento