Ultime news

PowerShell per iniziare: aprirla, capire i comandi e usare la pipeline senza fare danni

La prima guida della sezione: cos'è PowerShell, come aprirla normale o da amministratore, che differenza c'è tra la versione 5.1 e la 7, come sono fatti i comandi, i dieci comandi da conoscere, la pipeline con esempi e le regole di sicurezza per non eseguire comandi pericolosi.

Di 6 min di lettura
PowerShell per iniziare

PowerShell è la riga di comando moderna di Windows: con pochi comandi permette di vedere cosa c’è installato, aggiornare programmi, controllare dischi e servizi, e ripetere le stesse operazioni ogni volta nello stesso modo. Questa è la prima guida della sezione Guide: spiega le basi che serviranno in tutte le altre. Non serve saper programmare; basta seguire i passaggi e leggere con attenzione cosa fa ogni comando prima di premere Invio.

Prima di iniziare

  • Sistema: Windows 10 o Windows 11. PowerShell è già installata.
  • Account: per quasi tutto basta un utente normale. I comandi che modificano il sistema richiedono una finestra da amministratore: la guida lo indica ogni volta.
  • Regola d’oro: non incollare mai comandi trovati in siti, email o finti CAPTCHA se non sai cosa fanno (vedi la sezione sulla sicurezza).

Passo 1: aprire PowerShell

  1. Windows 11: tasto destro sul pulsante Start, poi Terminale. Si apre il Terminale di Windows con una scheda PowerShell.
  2. Windows 10: cerca PowerShell nel menu Start e apri Windows PowerShell.
  3. Da amministratore: tasto destro su Start, Terminale (amministratore), oppure tasto destro sull’icona di PowerShell e Esegui come amministratore. Windows chiede conferma (Controllo dell’account utente).

Come capire in che modalità sei: in una finestra normale il prompt mostra la tua cartella utente, per esempio PS C:\Users\mario>; da amministratore di solito parte da PS C:\Windows\system32> e la barra del titolo indica Amministratore. Usa la finestra da amministratore solo quando serve, e chiudila alla fine.

Passo 2: controllare la versione

$PSVersionTable.PSVersion
PowerShell: comando $PSVersionTable.PSVersion con la versione 5.1
Il comando $PSVersionTable.PSVersion mostra la versione: qui Windows PowerShell 5.1. Schermata ricostruita a scopo illustrativo.
Windows PowerShell 5.1 PowerShell 7
Presente in Windows Sì, sempre No, si installa a parte
Comando per aprirla powershell pwsh
Aggiornamenti Solo correzioni di sicurezza Nuove versioni periodiche
Compatibilità Massima con i vecchi moduli di Windows Quasi tutti i moduli; più veloce e multipiattaforma

Per queste guide va bene la 5.1. Se vuoi la 7, si installa con winget (lo strumento della prossima guida) e convive con la 5.1 senza sostituirla:

winget install --id Microsoft.PowerShell --source winget

Passo 3: come sono fatti i comandi

I comandi di PowerShell si chiamano cmdlet e hanno sempre la forma Verbo-Nome: Get-Process legge i processi, Stop-Process li termina, Get-Service elenca i servizi. I verbi più comuni:

Verbo Significato Rischio
Get Legge e mostra informazioni Nessuno: non modifica nulla
Test Verifica qualcosa e risponde vero o falso Nessuno
Set, New Modifica o crea Medio: leggi bene cosa cambia
Remove, Stop, Clear Elimina, ferma, svuota Alto: prova prima con -WhatIf

I parametri iniziano con un trattino: Get-ChildItem -Path C:\Windows -Filter *.log. Molti comandi che modificano il sistema accettano -WhatIf, che mostra cosa succederebbe senza farlo davvero, e -Confirm, che chiede conferma per ogni elemento.

Tre trucchi che fanno risparmiare tempo

  • Tasto Tab: completa nomi di comandi, parametri e percorsi. Scrivi Get-Ser e premi Tab.
  • Freccia su richiama i comandi precedenti; Ctrl+R cerca nella cronologia.
  • Aiuto: Get-Help Get-Service -Examples mostra esempi pronti; Get-Help Get-Service -Online apre la documentazione ufficiale nel browser. Per trovare un comando: Get-Command *service*.
PowerShell: Get-Command *service* elenca i comandi che contengono la parola service
Get-Command con un carattere jolly trova i comandi disponibili; Get-Help aggiunge descrizione ed esempi. Schermata ricostruita a scopo illustrativo.

Passo 4: dieci comandi da conoscere

Comando A cosa serve
Get-ComputerInfo -Property OsName, OsVersion, CsModel Sistema operativo, versione e modello del PC
Get-ChildItem C:\Users\mario\Downloads Elenca i file di una cartella (l’alias dir fa lo stesso)
Get-Process Programmi e processi in esecuzione
Get-Service Servizi di Windows e il loro stato
Get-Volume Dischi, spazio totale e libero
Test-Connection www.ciaranfi.org -Count 2 Come ping, ma con risultati come oggetti
Get-NetIPConfiguration Indirizzo IP, gateway e DNS delle schede di rete
Get-HotFix Aggiornamenti di Windows installati (elenco parziale, vedi la guida dedicata)
Get-History Comandi usati nella sessione
Clear-Host (o cls) Pulisce lo schermo

Tutti questi comandi leggono soltanto: puoi provarli senza rischi in una finestra normale.

Passo 5: la pipeline, il vero potere di PowerShell

Il simbolo | (pipe) passa il risultato di un comando al successivo. A differenza del vecchio Prompt dei comandi, PowerShell passa oggetti con proprietà (nome, dimensione, data…), non semplice testo: per questo si possono filtrare e ordinare con precisione.

Esempio: i cinque processi che hanno usato più tempo di CPU.

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU, Id
PowerShell: pipeline con Get-Process, Sort-Object e Select-Object
La pipeline passa gli oggetti da un comando al successivo: qui i cinque processi con più tempo di CPU. Nomi e valori sono di esempio.

I quattro comandi che userai più spesso nella pipeline:

Comando Cosa fa Esempio
Where-Object Filtra Get-Service | Where-Object Status -eq 'Stopped'
Sort-Object Ordina Get-ChildItem | Sort-Object Length -Descending
Select-Object Sceglie colonne o primi risultati Get-Volume | Select-Object DriveLetter, SizeRemaining
Export-Csv Salva in un file apribile con Excel Get-Service | Export-Csv servizi.csv -NoTypeInformation -Encoding UTF8

Per vedere un risultato in una finestra con filtro e ordinamento, aggiungi | Out-GridView alla fine (disponibile su Windows).

Esempio pratico: i file più grandi nella cartella Download

Get-ChildItem "$env:USERPROFILE\Downloads" -File -Recurse |
  Sort-Object Length -Descending |
  Select-Object -First 10 Name, @{n='MB'; e={[math]::Round($_.Length / 1MB, 1)}}

La colonna MB è una proprietà calcolata: divide la dimensione in byte per 1 MB e arrotonda a un decimale. È un comando di sola lettura: mostra i file, non li cancella.

Passo 6: eseguire uno script

Un file .ps1 contiene una sequenza di comandi. Per sicurezza Windows non esegue script finché non lo consenti. Controlla l’impostazione attuale:

Get-ExecutionPolicy -List

Per consentire gli script scritti da te e quelli scaricati e firmati, solo per il tuo utente:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Evita Unrestricted e Bypass come impostazione permanente. Se scarichi uno script da una fonte che conosci e ne hai letto il contenuto, puoi sbloccarlo con Unblock-File .\script.ps1. Le guide successive useranno script brevi e commentati riga per riga.

Sicurezza: i comandi che non devi incollare

Attenzione alle truffe con PowerShell. Esistono campagne di attacco (note come «ClickFix» o finti CAPTCHA) che mostrano una pagina con scritto «premi Win+R, poi Ctrl+V e Invio per dimostrare di non essere un robot». Il testo incollato è un comando PowerShell che scarica un programma malevolo.

Nessun sito legittimo, nessuna banca e nessun servizio di assistenza ti chiede di incollare comandi. Se ti succede, chiudi la pagina; se l’hai già fatto, scollega il PC da Internet e cambia le password da un altro dispositivo. Vedi anche come riconoscere un messaggio falso.

  • Diffida di comandi che contengono -EncodedCommand, iex o Invoke-Expression, DownloadString o lunghe stringhe incomprensibili.
  • Prima di eseguire un comando che modifica il sistema, cerca il nome del cmdlet nella documentazione Microsoft.
  • Usa la finestra da amministratore solo per il tempo necessario.

Errori comuni

  • «Accesso negato»: il comando richiede una finestra da amministratore.
  • «Impossibile caricare il file… l’esecuzione di script è disabilitata»: vedi il passo 6.
  • Percorsi con spazi: vanno tra virgolette, per esempio "C:\Program Files".
  • Il comando non esiste: controlla di non aver scritto un trattino lungo (–) al posto del trattino normale (-), succede copiando da documenti di Word.

Fonti