PowerShell: introduzione comandi essenziali

Cos'e PowerShell

PowerShell e la shell e il linguaggio di scripting Microsoft, evoluzione del vecchio cmd. Lavora con oggetti .NET invece che con testo grezzo, e questo permette pipeline molto più potenti rispetto a bash o cmd. Su Windows 11 trovi due versioni: Windows PowerShell 5.1 (integrata) e PowerShell 7+ (cross-platform, da installare).

Aprire PowerShell

  • Tasto destro su Start > Terminale Windows (aprira PowerShell di default)
  • Cerca "PowerShell" nel menu Start
  • Per privilegi admin: tasto destro > Esegui come amministratore

Cmdlet: i mattoni

Ogni comando in PowerShell e una cmdlet che segue lo schema Verbo-Sostantivo:

  • Get-Process: elenca processi
  • Get-Service: elenca servizi
  • Stop-Process -Name notepad: chiude Notepad
  • Restart-Service Spooler: riavvia il servizio di stampa
  • Get-ChildItem C:\Users: ls equivalente
  • Get-Content log.txt: cat equivalente

Pipeline con oggetti

L'output di una cmdlet e un'oggetto, non testo. Puoi quindi filtrare per proprietà:

  • Get-Process | Where-Object {$_.WorkingSet -gt 100MB}: processi che usano più di 100 MB
  • Get-Service | Where-Object Status -eq Running: solo servizi in esecuzione
  • Get-ChildItem -Recurse | Sort-Object Length -Descending | Select-Object -First 10: top 10 file più grandi

Help integrato

  • Get-Help Get-Process: documentazione del comando
  • Get-Help Get-Process -Examples: esempi pratici
  • Get-Command -Verb Get -Noun Process: cerca cmdlet
  • Update-Help: aggiorna help offline

Variabili e operatori

Le variabili iniziano con $:

$nome = "Mario"
$lista = 1..10
$processi = Get-Process

Operatori comparativi: -eq -ne -lt -gt -le -ge -like -match -in -contains. Esempio: "hello" -match "^he".

Cicli e condizioni

foreach ($i in 1..5) {
    Write-Host "Iterazione $i"
}

if ((Get-Service Spooler).Status -eq "Running") {
    Write-Host "Spooler attivo"
}

Eseguire script

Per default Windows blocca l'esecuzione di script .ps1. Apri PowerShell admin e modifica la policy:

  • Get-ExecutionPolicy: vedi quella corrente
  • Set-ExecutionPolicy RemoteSigned: consente script locali, blocca quelli da Internet senza firma

Comandi utili per IT

  • Test-Connection 8.8.8.8: ping
  • Test-NetConnection -Port 443 sito.it: verifica porta
  • Get-EventLog -LogName System -Newest 50: ultimi 50 eventi
  • Get-ComputerInfo: tutte le info sul PC
  • Add-LocalGroupMember -Group Administrators -Member "NomePC\Utente"
  • Get-NetIPAddress: IP delle interfacce
  • winget install nomeApp: gestore pacchetti

Hai bisogno di aiuto?

Se vuoi supporto Windows aziendale dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?