I sistemi operativi Microsoft integrano diversi strumenti accessibili da riga di comando. Si tratta di componenti che sono sprovvisti di interfaccia grafica e che accettano istruzioni sotto forma di comandi testuali. Ma qual è la differenza tra prompt dei comandi e PowerShell? Quando utilizzare l’uno o l’altro strumento in Windows?
Iniziamo col dire che con il lancio di Windows 11, Microsoft ha ufficialmente portato al debutto la nuova finestra del terminale. Premendo la combinazione di tasti Windows+X
, nelle precedenti versioni di Windows si trova un riferimento esplicito al prompt dei comandi oppure a Windows PowerShell. In Windows 11, invece, entrambe le voci sono sostituite con Terminale e Terminale (Admin).
La finestra Terminale di Windows, utilizzabile anche da Windows 10 installando la corrispondente applicazione dal Microsoft Store, è una sorta di contenitore per tutte le interfacce da riga di comando Microsoft. Avviando Terminale in Windows 10 o in Windows 11, è possibile accedere a una finestra PowerShell, al tradizionale prompt dei comandi, alla bash di Linux attivabile previa installazione del pacchetto Windows Subsystem for Linux (WSL), ad Azure Cloud Shell.
Qual è la differenza tra prompt dei comandi e PowerShell
Come abbiamo anticipato in apertura, PowerShell e il prompt dei comandi sono entrambi ambienti da riga di comando su sistemi Windows. Tra i due esistono differenze importanti in termini di funzionalità, sintassi e capacità.
Cos’è il prompt dei comandi
Il prompt dei comandi di Windows è, storicamente, una finestra a sfondo completamente nero che consente di impartire istruzioni per via testuale. Può essere utilizzato per eseguire operazioni di sistema, automatizzare compiti, diagnosticare problemi e altro ancora.
In qualunque versione del sistema operativo Microsoft è richiamabile semplicemente digitando cmd
nella casella di ricerca e premendo Invio. Per aprirlo con i diritti di amministratore, basta fare clic su Esegui come amministratore.
In alternativa si può premere Windows+R
, digitare cmd
quindi premere la combinazione di tasti CTRL+MAIUSC+INVIO
.
Ancora, si può premere Windows+X
, come indicato in precedenza, e scegliere Prompt dei comandi, ove disponibile. Per far apparire la voce al posto di Windows PowerShell in Windows 10 basta digitare prompt nella casella di ricerca del sistema operativo, scegliere Sostituisci il prompt dei comandi con Windows PowerShell nel menu quindi disattivare l’omonima opzione.
Il prompt dei comandi è un “amico prezioso” perché, ad esempio, può essere aperto anche dal supporto d’installazione di Windows, durante la procedura di setup, semplicemente premendo MAIUSC+F10
.
In un altro articolo abbiamo visto i migliori trucchi e segreti da usare al prompt dei comandi per sfruttarne tutte le potenzialità. A suo tempo, Microsoft ha anche pubblicato la lista dei comandi da usare al prompt in Windows.
Alcuni utenti, commettendo un errore, si riferiscono al prompt dei comandi di Windows parlando di finestra DOS o prompt di MS-DOS. In realtà il vecchio MS-DOS e il prompt dei comandi di Windows sono profondamente diversi.
MS-DOS è un sistema operativo a riga di comando sviluppato da Microsoft, predecessore degli ambienti operativi e dei sistemi operativi Windows 3.x, NT e 9x. Il prompt dei comandi di Windows è invece un’applicazione Win32 che funziona al di sopra del kernel di Windows. MS-DOS era invece un sistema operativo autonomo.
In un altro articolo abbiamo presentato alcuni comandi che permettono di risolvere la maggior parte dei problemi di Windows.
Cos’è PowerShell
PowerShell è stato introdotto da Microsoft a novembre 2006. La prima versione è stata resa disponibile al pubblico con il lancio di Windows Server 2008. Successivamente, è stata inclusa anche in Windows Vista, Windows 7 e in molte altre versioni successive dei sistemi operativi Windows.
Possiamo descrivere PowerShell come un ambiente di shell e scripting che offre una potente interfaccia a riga di comando per la gestione e l’automazione delle attività di sistema su Windows. Parliamo di scripting perché PowerShell integra un linguaggio a sé, con una sua specifica sintassi, che permette di eseguire operazioni come la gestione del file system, la configurazione del sistema, la gestione delle reti, la gestione di servizi e molte altre attività amministrative.
Quando parliamo della finestra di PowerShell (che fino a Windows 10 compreso aveva sfondo blu anziché nero), si può pensare a un ambiente operativo che supporta tutti i comandi di base del prompt tradizionale ma ne estende incredibilmente le possibilità.
PowerShell è oggi ampiamente utilizzato per l’automazione delle operazioni di sistema, la gestione di server e servizi, la configurazione di dispositivi Windows e molte altre attività IT negli ambienti Windows. La sua versatilità e la sua capacità di automatizzare le attività quotidiane lo rendono uno strumento prezioso per gli amministratori di sistema e gli sviluppatori Windows.
In tanti nostri articoli abbiamo presentato cmdlet PowerShell che permettono di effettuare le modifiche più disparate sulla configurazione di Windows. L’articolo PowerShell per esempi fornisce indicazioni pratiche su ciò che si può fare con la shell più avanzata del sistema operativo Microsoft.
Caratteristiche del prompt dei comandi e di PowerShell a confronto
- Linguaggio di scripting
– Prompt dei comandi: Supporta principalmente i file batch (estensioni.bat
e.cmd
).
– PowerShell: Usa un linguaggio di scripting più potente chiamato PowerShell Scripting Language. - Sintassi
– Prompt dei comandi: La sintassi è basata su comandi, variabili d’ambiente e file batch. È relativamente semplice ma complessivamente limitata. Anche se la sintassi più avanzata sfruttabie nei file batch talvolta crea non pochi “mal di testa”.
– PowerShell: La sintassi è più ricca e flessibile. Utilizza cmdlet (comandi simili a funzioni) e oggetti .NET, consentendo operazioni più avanzate. - Pipeline
– Prompt dei comandi: La pipeline è meno flessibile e si basa principalmente su operazioni di redirezione (simbolo della “pipe” ovvero|
) per passare l’output di un comando all’input di un altro. Nel contesto della riga di comando, la pipeline si riferisce alla potente caratteristica che consente di concatenare più comandi o operazioni in un’unica sequenza continua.
– PowerShell: La pipeline è un concetto centrale. Si possono trasferire oggetti con una struttura complessa tra cmdlet, consentendo una manipolazione più avanzata dei dati. - Gestione dei file
– Prompt dei comandi: Può gestire file e cartelle, ma è limitato in termini di manipolazione dei dati.
– PowerShell: Offre una gestione avanzata dei file e dei dati, consentendo operazioni come la lettura/scrittura di file JSON, XML, CSV e così via. - Automazione
– Prompt dei comandi: È adatto principalmente per script semplici e automatizzazioni di base.
– PowerShell: È un ambiente di automazione più potente, utilizzato per compiti amministrativi complessi e scripting avanzato. - Compatibilità
– Prompt dei comandi: È compatibile con script batch più vecchi e può essere eseguito su tutte le versioni di Windows.
– PowerShell: È disponibile solo su versioni più recenti di Windows e potrebbe richiedere l’installazione di moduli aggiuntivi per alcune funzionalità.
Vale la pena evidenziare che con PowerShell si possono anche creare script basati su interfaccia grafica: è possibile usare cmdlet per generare gli elementi della shell grafica di Windows come finestre, pulsanti, caselle di testo, opzioni e così via collegandoli poi con azioni specifiche. In questo modo è possibile arrivare addirittura a realizzare applicazioni PowerShell dotate di GUI più o meno complesse.
In forza dell’introduzione del componente chiamato Terminale, in Windows 11 le differenze visuali tra le finestre PowerShell e il prompt dei comandi è diventato sempre più sfumato. Tanto che anche le prime hanno uno sfondo nero.
In tutte le versioni di Windows, comunque, il prompt PowerShell è riconoscibile per la presenza dell’indicazione PS
prima del percorso corrispondente alla directory corrente.
In un nostro approfondimento, abbiamo parlato dei comandi Windows da conoscere per le operazioni di rete.
L’immagine in apertura è tratta dal post di Kayla Cinnamon (Microsoft) e dal video collegato.