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.

  • 🚀 Avvia la shell corretta: Apri PowerShell o PowerShell ISE dal menu Start ed eseguilo come amministratore quando hai bisogno di privilegi elevati.
  • 🧩 Utilizza i cmdlet, non i comandi di testo: I cmdlet seguono uno schema di denominazione verbo-nome e restituiscono oggetti .NET, in modo che l'output possa fluire nel cmdlet successivo attraverso una pipeline.
  • 🔐 Definisci attentamente la politica di esecuzione: Utilizza Set-ExecutionPolicy con RemoteSigned per bilanciare sicurezza e praticità durante l'esecuzione di script .ps1.
  • 📁 Scrivi script .ps1 riutilizzabili: Combina cmdlet, variabili e pipeline in un file di testo con estensione .ps1 per automatizzare le attività amministrative ripetitive.
  • 🤖 Integrare PowerShell con l'intelligenza artificiale: Gli assistenti basati sull'intelligenza artificiale trasformano le richieste in linguaggio naturale in script PowerShell pronti per l'esecuzione e spiegano riga per riga i cmdlet meno familiari.

Tutorial su PowerShell per principianti

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.

Avvia PowerShell

Passo 2) Si apre la finestra di PowerShell.

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

cmdlet Get-Help

Ottieni comando: ottenere informazioni su qualsiasi cosa possa essere invocata.

Esempio: generare un elenco di cmdlet e funzioni installati sul computer.

Get-Command

cmdlet 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*"

cmdlet Get-Service

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

cmdlet 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:

Output Nuovo elemento

Tipi di dati di PowerShell

PowerShell supporta i tipi di dati standard .NET, quindi è possibile memorizzare qualsiasi valore in modo pulito in una variabile.

Tipi di dati di PowerShell

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".

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.

Eseguire PowerShell come amministratore

Passo 2) Eseguire i comandi seguenti.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. entra Y alla richiesta di conferma.
  4. Get-ExecutionPolicy

Modifica la politica di esecuzione

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.

Salva FirstScript.ps1

In PowerShell, esegui lo script con:

& "X:\FirstScript.ps1"

Eseguire 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.

Power Shell ISE

Ricrea lo script precedente in ISE:

  1. Incolla il codice nell'editor.
  2. Salva lo script.
  3. Premi F5 per eseguirlo.
  4. Osserva l'output nel riquadro della console.

Eseguire lo script in ISE

Esempio 2: Il seguente script visualizza gratuitamente la memoria virtuale sulla macchina.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Script gratuito per la memoria virtuale

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.

DOMANDE FREQUENTI

PowerShell automatizza Windows Amministrazione di sistema: gestione di servizi, file, utenti e server tramite un linguaggio di scripting e riga di comando orientato agli oggetti, basato sul framework .NET.

Un cmdlet è un oggetto di classe .NET leggero che utilizza una struttura verbo-nome e restituisce oggetti. Un comando tradizionale in altre shell produce testo semplice e gestisce autonomamente l'analisi e la formattazione.

PowerShell lavora con gli oggetti e supporta cmdlet, scripting e una profonda integrazione con .NET. Il prompt dei comandi è una shell di base basata su testo i cui comandi producono output di testo semplice anziché di oggetti.

Un file .ps1 è uno script PowerShell, ovvero un file di testo contenente uno o più comandi PowerShell. Per impostazione predefinita, non può essere eseguito con un doppio clic; viene eseguito dalla console o tramite "Esegui con PowerShell".

Apri PowerShell come amministratore ed esegui Set-ExecutionPolicy con un valore come RemoteSigned o Unrestricted, quindi conferma. Usa Get-ExecutionPolicy per verificare l'impostazione corrente.

L'Integrated Scripting Environment (ISE) è l'editor GUI integrato di PowerShell per la scrittura, l'esecuzione, il test e il debug degli script, con colorazione della sintassi, completamento automatico tramite tabulazione e schede multiple per gli script.

Gli assistenti basati sull'intelligenza artificiale suggeriscono cmdlet, spiegano il comportamento degli script e rilevano gli errori durante la digitazione. Aiutano gli amministratori ad automatizzare le attività più velocemente e a convertire le richieste in linguaggio naturale in comandi PowerShell funzionanti.

Sì. Gli assistenti di codice basati sull'IA generano script PowerShell completi a partire da una descrizione in linguaggio naturale, come ad esempio "elenca tutti i servizi arrestati e riavviali", e spiegano ogni cmdlet in modo che tu possa esaminarlo prima di eseguirlo.

Riassumi questo post con: