Tutorial su PowerShell per principianti
⚡ Riepilogo intelligente
PowerShell Scripting è un motore di automazione orientato agli oggetti basato sul framework .NET. Combina cmdlet, script e un linguaggio di scripting per aiutare gli amministratori IT ad automatizzare Windows, gestire i servizi e connettere macchine remote da un'unica riga di comando.

Cos'è PowerShell?
Windows PowerShell è un motore di automazione orientato agli oggetti e un linguaggio di scripting. È progettato per i professionisti IT e gli amministratori di sistema che hanno bisogno di controllare e automatizzare l'amministrazione di Windows e altre applicazioni. PowerShell estende i concetti appresi in Windows Prompt dei comandi e Windows Host di script con nuovi oggetti, cmdlet e una potente pipeline.
Combina la flessibilità degli script, la velocità della riga di comando e la completezza di uno strumento di amministrazione con interfaccia grafica. Grazie ad esso, gli amministratori possono risolvere i problemi in modo efficiente ed eliminare ore di lavoro manuale. Questo tutorial illustra gli elementi essenziali necessari per imparare PowerShell da zero.
Perché utilizzare PowerShell?
I motivi più importanti per utilizzare PowerShell sono:
- Offre un'esperienza a riga di comando ben integrata con il sistema operativo.
- Fornisce accesso completo a ogni tipo nel framework .NET.
- Scelto e apprezzato dagli amministratori di sistema di tutte le aziende.
- Consente di manipolare i componenti di server e workstation con poche righe di codice.
- Pensato per gli amministratori di sistema, con una sintassi chiara basata su verbi e sostantivi.
- Più sicuro della corsa VBScript o altri linguaggi di scripting obsoleti.
Cronologia di PowerShell
PowerShell 1.0 è stato rilasciato per la prima volta nel 2006. PowerShell è ora arrivato alla versione 7.2 e successive. Con il rilascio delle versioni, le sue funzionalità e gli ambienti di hosting sono cresciuti in modo significativo.
Cronologia delle versioni di PowerShell:
- PowerShell 1.0 — ha sostenuto l'amministrazione locale di Windows 2003 Server.
- PowerShell 2.0 — integrato con Windows 7 e Windows Server 2008 R2. Aggiunte funzionalità di accesso remoto, transazioni, processi in background, eventi e debug.
- PowerShell 3.0 — spedito con Windows 8 e Windows Server 2012 come parte del Windows Framework di gestione. Aggiunte funzionalità per la pianificazione dei processi, la connettività di sessione e il caricamento automatico dei moduli.
- PowerShell 4.0 — spedito con Windows 8.1 e Windows Server 2012 R2. Aggiunta la configurazione dello stato desiderato (DISA), funzionalità di debug migliorate e diagnostica di rete.
- PowerShell 5.0 — parte di Windows Framework di gestione 5. Aggiunte funzionalità di debug remoto, definizioni di classi ed enumerazioni .NET.
- PowerShell 7.2 — Basato su .NET 6.0. Aggiunge nuovi operatori, visualizzazioni dinamiche degli errori e notifiche automatiche di versione.
Caratteristiche di PowerShell
- Accesso remoto tramite PowerShell: Eseguire script e cmdlet su una macchina remota.
- Lavori di base: Eseguire script o pipeline in modo asincrono sulla macchina locale o su più macchine remote.
- Le operazioni: Consenti ai cmdlet e agli sviluppatori di eseguire operazioni raggruppate che possono essere confermate o annullate insieme.
- Eventi: Ascoltare, inoltrare e agire in base agli eventi di gestione e di sistema.
- Trasferimento file in rete: Supporto nativo per il trasferimento di file prioritario, asincrono e a velocità limitata tra macchine tramite il servizio di trasferimento intelligente in background (BITS).
Come avviare PowerShell
PowerShell è preinstallato in ogni versione recente di WindowsAvvialo nel modo seguente.
Passo 1) Cerca PowerShell in Windows, quindi selezionalo e cliccaci sopra.
Passo 2) Si apre la finestra di PowerShell.
Cmdlet e comando
A cmdlet (pronunciato “command-let”) è un comando leggero utilizzato nell'ambiente PowerShell. PowerShell richiama i cmdlet dal prompt ed è possibile crearne di propri utilizzando le API di PowerShell. I cmdlet si differenziano dai comandi shell tradizionali nei seguenti modi:
- I cmdlet sono .NET Framework oggetti di classe; non possono essere eseguiti come eseguibili autonomi.
- I cmdlet possono essere scritti con appena una dozzina di righe di codice.
- L'analisi sintattica, la formattazione dell'output e la presentazione degli errori sono gestite dal runtime, non dal cmdlet stesso.
- I cmdlet lavorano con gli oggetti, quindi sia i flussi di testo che gli oggetti possono transitare attraverso le pipeline.
- I cmdlet sono basati su record ed elaborano un singolo oggetto alla volta.
La maggior parte delle funzionalità di PowerShell viene fornita tramite cmdlet, che utilizzano sempre uno schema di denominazione verbo-nome (sempre singolare). I cmdlet restituiscono oggetti, non testo. copione — distinto da un cmdlet — è una serie di comandi memorizzati in un file di testo con il .ps1 estensione.
I verbi più comuni che utilizzerai per imparare PowerShell includono:
- Ottieni — recuperare qualcosa.
- Inizio — esegui qualcosa.
- Fuori — produrre qualcosa.
- Fermare — fermare qualcosa che è in esecuzione.
- Impostato — Definisci qualcosa.
- New — crea qualcosa.
Comandi PowerShell importanti
Ottenere aiuto: Consulta la guida per i comandi e gli argomenti di PowerShell.
Esempio: visualizza la guida per Format-Table comando.
Get-Help Format-Table
Ottieni comando: ottenere informazioni su qualsiasi cosa possa essere invocata.
Esempio: generare un elenco di cmdlet e funzioni installati sul computer.
Get-Command
Ottieni assistenza: Trova tutti i servizi presenti sulla macchina.
Esempio: ottieni tutti i servizi il cui nome inizia con "vm".
Get-Service "vm*"
Diventa membro: Mostra cosa si può fare con un oggetto.
Esempio: elenca i membri dei servizi vm restituiti da Get-Service.
Get-Service "vm*" | Get-Member
Altri cmdlet utili:
Get-Module— mostra i pacchetti di comandi installati.Get-Content— leggere un file ed elaborarne il contenuto.Get-*jolly — elenca tutti i cmdlet che iniziano con “Get-“.
Esempio: creare una cartella.
New-Item -Path 'X:\Guru99' -ItemType Directory
Produzione:
Tipi di dati di PowerShell
PowerShell supporta i tipi di dati standard .NET, quindi è possibile memorizzare qualsiasi valore in modo pulito in una variabile.
Variabili speciali
PowerShell mette a disposizione diverse variabili speciali integrate. Le più utili sono elencate di seguito.
| Variabile speciale | Descrizione |
|---|---|
| $Errore | Un array di oggetti errore che rappresentano gli errori più recenti. |
| $Ospite | Visualizza il nome dell'applicazione host corrente. |
| $Profilo | Memorizza il percorso completo del profilo utente per la shell predefinita. |
| $ PID | Memorizza l'identificativo del processo. |
| $PSUICultura | Contiene il nome della cultura dell'interfaccia utente corrente. |
| $NULL | Contiene il valore vuoto o nullo. |
| $Falso | Contiene il valore booleano FALSE. |
| $Vero | Contiene il valore booleano TRUE. |
Script di PowerShell
Gli script PowerShell sono memorizzati in .ps1 file. Per impostazione predefinita, non è possibile eseguire uno script facendo doppio clic su di esso: questa misura di sicurezza protegge il sistema da danni accidentali. Per eseguire uno script, fare clic con il pulsante destro del mouse su di esso e scegliere "Esegui con PowerShell".
Una policy di esecuzione controlla quali script possono essere eseguiti. Visualizza la policy corrente con Get-ExecutionPolicyI valori possibili includono:
- Limitato — Non sono consentiti script. Questa è l'impostazione predefinita.
- Tutti firmati — Vengono eseguiti solo gli script firmati da uno sviluppatore fidato, e ognuno richiede una conferma.
- Firmato a distanza — vengono eseguiti i tuoi script, oltre a script firmati provenienti da fonti attendibili.
- illimitato — qualsiasi script può essere eseguito (usare con parsimonia).
Procedura per modificare i criteri di esecuzione:
Passo 1) Apri un prompt di PowerShell con privilegi elevati facendo clic con il pulsante destro del mouse su PowerShell e selezionando Esegui come amministratore.
Passo 2) Eseguire i comandi seguenti.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- entra
Yalla richiesta di conferma. Get-ExecutionPolicy
Primo script di PowerShell
Apri il Blocco note e digita:
Write-Host "Hello, Guru99!"
Salvare il file con a .ps1 estensione — ad esempio, FirstScript.ps1.
In PowerShell, esegui lo script con:
& "X:\FirstScript.ps1"
Cos'è PowerShell ISE?
Migliori Windows Ambiente di scripting integrato di PowerShell (ISE) ISE è l'editor predefinito per PowerShell. In ISE è possibile eseguire comandi, scrivere test ed eseguire il debug di script in un ambiente grafico basato su finestre. Supporta la modifica su più righe, la colorazione della sintassi, il completamento automatico tramite tabulazione, l'esecuzione selettiva e altro ancora.
PowerShell ISE offre anche un riquadro della console che esegue i comandi direttamente, mentre i riquadri laterali mostrano il codice sorgente degli script e gli strumenti collegati a ISE. È possibile aprire più finestre di script contemporaneamente, una funzione utile per il debug di script che dipendono da funzioni definite in altri script o moduli.
Ricrea lo script precedente in ISE:
- Incolla il codice nell'editor.
- Salva lo script.
- Premi F5 per eseguirlo.
- Osserva l'output nel riquadro della console.
Esempio 2: Il seguente script visualizza gratuitamente la memoria virtuale sulla macchina.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
I seguenti concetti costituiscono il vocabolario del lavoro quotidiano con PowerShell.
| Idea | Descrizione |
|---|---|
| Cmdlet | Comandi integrati scritti in linguaggi .NET come VB o C#. Gli sviluppatori estendono questo set caricando o scrivendo snap-in PowerShell. |
| funzioni | Comandi scritti direttamente nel linguaggio PowerShell, senza bisogno di un IDE come Di Visual Studio. |
| Script | File di testo su disco con il .ps1 estensione. |
| Applicazioni | Esistente Windows programmi richiamati dalla shell. |
| Cosa succede se | Indica al cmdlet di non eseguirlo, ma di descrivere cosa accadrebbe se lo facesse. |
| Confermare | Indica al cmdlet di richiedere conferma prima dell'esecuzione. |
| verboso | Fornisce un livello di dettaglio operativo superiore. |
| Mettere a punto | Indica al cmdlet di emettere informazioni di debug. |
| ErrorAzione | Definisce cosa fa il cmdlet in caso di errore. Valori consentiti: continue, stop, silentlycontinue, inquire. |
| VariabileErrore | Specifica il nome della variabile che contiene le informazioni sugli errori. |
| OutVariabile | Indica al cmdlet di memorizzare il suo output in una variabile specifica. |
| FuoriBuffer | Contiene un numero specifico di oggetti prima di inviarli lungo la pipeline. |
Vantaggi dell'utilizzo degli script PowerShell
- Gli script PowerShell sono potenti e concisi: si possono ottenere ottimi risultati con poche righe di codice.
- Le variabili vengono dichiarate con il
$<variable>sintassi. - Le variabili possono contenere output di comandi, oggetti e valori primitivi.
- Non è necessario specificare esplicitamente il tipo di variabile.
PowerShell contro prompt dei comandi
| PowerShell | Prompt dei comandi |
|---|---|
| Profondamente integrato con WindowsOffre una riga di comando interattiva e un linguaggio di scripting completo. | Interfaccia a riga di comando predefinita fornita da MicrosoftUna semplice applicazione Win32 che interagisce con altri oggetti Win32. |
| Utilizza cmdlet che possono essere richiamati in modo interattivo o tramite script di automazione. | Nessun cmdlet. |
| Tratta l'output come oggetti in modo che possa fluire in un altro cmdlet attraverso la pipeline. | L'output è un semplice flusso di testo, non di oggetti. |
| Avanzato in termini di funzionalità, capacità e architettura interna. | Shell di base, adatta a processi batch legacy. |
Applicazioni di PowerShell
PowerShell è diventato lo strumento standard per gli amministratori IT perché riduce drasticamente lo sforzo necessario per gestire grandi reti aziendali. Immaginate di dover gestire più di quattrocento server e di dover implementare una nuova soluzione di sicurezza che dipende da un servizio specifico in esecuzione su ogni host.
Accedere manualmente a ciascun server è un'operazione lenta e soggetta a errori. Un singolo script PowerShell può analizzare ogni server in pochi minuti, segnalare quali host eseguono già il servizio e persino abilitarlo sugli altri. Lo script acquisisce l'intento una sola volta e lo applica in modo affidabile a tutta l'infrastruttura.
















