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 processiGet-Service: elenca serviziStop-Process -Name notepad: chiude NotepadRestart-Service Spooler: riavvia il servizio di stampaGet-ChildItem C:\Users: ls equivalenteGet-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 MBGet-Service | Where-Object Status -eq Running: solo servizi in esecuzioneGet-ChildItem -Recurse | Sort-Object Length -Descending | Select-Object -First 10: top 10 file più grandi
Help integrato
Get-Help Get-Process: documentazione del comandoGet-Help Get-Process -Examples: esempi praticiGet-Command -Verb Get -Noun Process: cerca cmdletUpdate-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 correnteSet-ExecutionPolicy RemoteSigned: consente script locali, blocca quelli da Internet senza firma
Comandi utili per IT
Test-Connection 8.8.8.8: pingTest-NetConnection -Port 443 sito.it: verifica portaGet-EventLog -LogName System -Newest 50: ultimi 50 eventiGet-ComputerInfo: tutte le info sul PCAdd-LocalGroupMember -Group Administrators -Member "NomePC\Utente"Get-NetIPAddress: IP delle interfaccewinget 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.