PowerShell è uno degli strumenti fondamentali per l’amministrazione, la configurazione e l’automazione degli ambienti Microsoft.
Il corso PowerShell per amministratori di sistema fornisce le competenze necessarie per utilizzare PowerShell nella gestione quotidiana di workstation, server e infrastrutture Windows. I partecipanti imparano a individuare i comandi disponibili, interrogare il sistema, gestire servizi, processi, file, utenti, rete ed eventi, eseguire operazioni su più computer e trasformare procedure amministrative ripetitive in script affidabili e riutilizzabili.
Il percorso non è concepito come un corso di programmazione astratta. Ogni argomento viene affrontato attraverso attività tipiche del lavoro sistemistico: raccolta di informazioni, configurazione dei sistemi, gestione remota, controllo degli errori, produzione di report e automazione delle operazioni ricorrenti.
Particolare attenzione viene dedicata alla pipeline, alla gestione degli oggetti, alla comunicazione remota, ai moduli amministrativi di Windows Server e alla scrittura di script strutturati.
Il corso considera sia Windows PowerShell 5.1, ancora presente e utilizzato in molti ambienti Windows, sia PowerShell 7, evidenziandone differenze, compatibilità e principali scenari di utilizzo.
Il corso è rivolto a:
- amministratori di sistema;
- tecnici IT e personale help desk;
- amministratori Windows Server;
- tecnici responsabili di reti e infrastrutture;
- amministratori di Active Directory;
- professionisti che gestiscono ambienti Microsoft;
- personale IT che desidera automatizzare attività ripetitive;
- tecnici che utilizzano strumenti grafici di amministrazione e vogliono acquisire maggiore efficienza attraverso PowerShell.
Al termine del percorso i partecipanti saranno in grado di:
- utilizzare correttamente la console PowerShell e Windows Terminal;
- distinguere Windows PowerShell 5.1 e PowerShell 7;
- individuare comandi, moduli e relativa documentazione;
- comprendere la struttura verbo-sostantivo dei cmdlet;
- utilizzare parametri, alias, variabili e operatori;
- lavorare con oggetti e proprietà;
- costruire pipeline per selezionare, filtrare, ordinare e aggregare dati;
- importare ed esportare informazioni in diversi formati;
- amministrare file, cartelle, processi, servizi e registri eventi;
- raccogliere informazioni hardware e software attraverso CIM;
- gestire configurazioni di rete e firewall;
- eseguire comandi su computer remoti;
- creare e utilizzare sessioni PowerShell persistenti;
- automatizzare operazioni su più server;
- scrivere script parametrizzati e riutilizzabili;
- gestire errori, log e risultati delle esecuzioni;
- creare funzioni amministrative;
- utilizzare i principali moduli PowerShell di Windows Server;
- applicare criteri di sicurezza e buone pratiche nella gestione degli script.
1. Introduzione a PowerShell
- Ruolo di PowerShell nell’amministrazione dei sistemi
- Differenze tra prompt dei comandi, Windows PowerShell e PowerShell 7
- Installazione e aggiornamento di PowerShell
- Windows Terminal
- PowerShell ISE e Visual Studio Code
- Configurazione dell’ambiente di lavoro
- Versioni ed edizioni di PowerShell
- Verifica della versione installata
- Struttura dei comandi PowerShell
- Convenzione verbo-sostantivo
- Cmdlet, funzioni, script, applicazioni e alias
- Uso della cronologia dei comandi
- Completamento automatico e IntelliSense
2. Individuazione e utilizzo dei comandi
- Utilizzo di
Get-Command
- Ricerca dei comandi per verbo, sostantivo e modulo
- Utilizzo di
Get-Help
- Aggiornamento della guida
- Interpretazione della sintassi
- Parametri obbligatori e facoltativi
- Parametri posizionali e denominati
- Utilizzo degli esempi
- Alias e abbreviazioni
- Comandi per la gestione del sistema
- Discovery dei moduli amministrativi disponibili
3. Oggetti, proprietà e pipeline
- Il modello a oggetti di PowerShell
- Differenza tra testo e oggetti
- Proprietà e metodi
- Utilizzo di
Get-Member
- Funzionamento della pipeline
- Passaggio degli oggetti tra i comandi
- Selezione delle proprietà
- Filtraggio degli oggetti
- Ordinamento dei risultati
- Raggruppamento e misurazione
- Proprietà calcolate
- Iterazione con
ForEach-Object
- Formattazione tabellare e a elenco
- Differenza tra elaborazione e formattazione
- Produzione di output leggibile
Comandi principali
Select-Object
Where-Object
Sort-Object
Group-Object
Measure-Object
ForEach-Object
Format-Table
Format-List
4. Variabili, tipi di dati ed espressioni
- Creazione e utilizzo delle variabili
- Tipi di dati
- Stringhe, numeri, date e valori booleani
- Array e raccolte
- Hashtable
- Operatori aritmetici
- Operatori di confronto
- Operatori logici
- Operatori per stringhe e raccolte
- Espansione delle variabili nelle stringhe
- Conversione dei tipi
- Espressioni e sottoespressioni
- Scope delle variabili
5. Importazione, esportazione e produzione di report
- Lettura e scrittura di file di testo
- Utilizzo di CSV
- Importazione di elenchi di computer e utenti
- Esportazione dei risultati
- Conversione in HTML
- Gestione di JSON e XML
- Creazione di report amministrativi
- Codifica dei file
- Aggiunta e sovrascrittura dei contenuti
- Acquisizione interattiva dei dati
- Gestione sicura delle credenziali
Comandi principali
Get-Content
Set-Content
Add-Content
Import-Csv
Export-Csv
ConvertTo-Html
ConvertTo-Json
ConvertFrom-Json
Out-File
Read-Host
Get-Credential
6. Amministrazione del sistema operativo
Gestione di processi e servizi
- Individuazione dei processi
- Avvio e arresto dei processi
- Monitoraggio dell’utilizzo delle risorse
- Gestione dei servizi Windows
- Configurazione del tipo di avvio
- Verifica dello stato dei servizi su più computer
File system e autorizzazioni
- Navigazione nei provider PowerShell
- Gestione di file e directory
- Ricerca dei file
- Copia, spostamento e rimozione
- Analisi delle dimensioni delle cartelle
- Gestione degli attributi
- Introduzione alle autorizzazioni NTFS
- Analisi delle Access Control List
Registri eventi
- Lettura dei registri eventi
- Filtraggio degli eventi
- Ricerca di errori e avvisi
- Analisi degli eventi recenti
- Produzione di report
- Consultazione dei log operativi
Attività pianificate
- Creazione e gestione delle attività pianificate
- Automazione dell’esecuzione degli script
- Configurazione di trigger e azioni
- Verifica degli esiti di esecuzione
7. Gestione del sistema attraverso CIM
- Introduzione a CIM e WMI
- Architettura di Windows Management Instrumentation
- Cmdlet CIM
- Individuazione delle classi disponibili
- Interrogazione delle informazioni hardware
- Sistema operativo e configurazione
- BIOS e scheda madre
- Memoria e processori
- Dischi e volumi
- Schede di rete
- Software installato
- Sessioni CIM
- Interrogazioni locali e remote
- Filtri lato server
- Differenze tra cmdlet CIM e vecchi cmdlet WMI
8. Networking e sicurezza
- Visualizzazione della configurazione IP
- Gestione degli adattatori di rete
- Configurazione degli indirizzi IP
- DNS client e risoluzione dei nomi
- Test della connettività
- Analisi delle connessioni TCP
- Gestione delle route
- Consultazione e configurazione di Windows Firewall
- Regole in ingresso e in uscita
- Profili di rete
- Verifica delle porte e dei servizi
- Raccolta delle informazioni di sicurezza
- Microsoft Defender e moduli disponibili
9. PowerShell Remoting
- Principi della gestione remota
- Architettura di PowerShell Remoting
- WinRM e WS-Management
- Abilitazione e configurazione del remoting
- Gestione dei requisiti di rete e firewall
- Sessioni interattive
- Esecuzione remota di comandi
- Gestione simultanea di più computer
- Sessioni temporanee e persistenti
- Utilizzo di
PSSession
- Passaggio di variabili alle sessioni remote
- Serializzazione degli oggetti
- Esecuzione di script remoti
- Gestione delle credenziali
- TrustedHosts e ambienti non appartenenti al dominio
- Principali problemi di autenticazione
- Introduzione alla delega e al problema del second hop
- PowerShell Direct per macchine virtuali Hyper-V
- Principi di sicurezza del remoting
Comandi principali
Enable-PSRemoting
Enter-PSSession
Exit-PSSession
Invoke-Command
New-PSSession
Get-PSSession
Receive-PSSession
Remove-PSSession
10. Scrittura di script PowerShell
- Creazione e salvataggio degli script
- Estensione
.ps1
- Execution Policy
- Parametri degli script
- Blocco
param
- Parametri obbligatori
- Valori predefiniti
- Validazione degli input
- Strutture condizionali
- Cicli
- Elaborazione di raccolte
- Utilizzo di
switch
- Commenti e documentazione
- Comment-based help
- Organizzazione logica dello script
- Percorsi relativi e assoluti
- Riutilizzo del codice
- Scrittura di output, warning ed errori
Strutture principali
if, elseif, else
switch
foreach
for
while
do while
do until
11. Gestione degli errori, logging e troubleshooting
- Errori terminanti e non terminanti
- Variabile
$Error
- Parametro
ErrorAction
- Preferenze di gestione degli errori
- Blocchi
try, catch e finally
- Generazione controllata degli errori
- Utilizzo di
throw
- Validazione preventiva
- Registrazione delle operazioni
- Creazione di file di log
- Transcript delle sessioni
- Debug degli script
- Breakpoint
- Esecuzione passo-passo
- Analisi delle variabili
- Introduzione a PSScriptAnalyzer
- Principali errori nella scrittura degli script
12. Funzioni, moduli e riutilizzo del codice
- Creazione di funzioni
- Parametri delle funzioni
- Advanced Functions
- Attributo
CmdletBinding
- Parametri comuni
- Output delle funzioni
- Pipeline input
- Scope e visibilità
- Organizzazione delle funzioni
- Introduzione ai moduli
- Importazione e rimozione dei moduli
- Ricerca dei moduli
- PowerShell Gallery
- Installazione e aggiornamento dei moduli
- Creazione di un semplice modulo personale
- Firma digitale degli script: principi generali
13. PowerShell per Windows Server
Panoramica operativa dei moduli utilizzabili per amministrare:
- ruoli e funzionalità di Windows Server;
- Active Directory Domain Services;
- utenti, gruppi e computer di dominio;
- Group Policy;
- DNS Server;
- DHCP Server;
- file server e condivisioni SMB;
- dischi, volumi e storage;
- networking;
- Windows Firewall;
- Hyper-V;
- Failover Clustering;
- attività pianificate;
- Microsoft Defender;
- IIS;
- aggiornamenti e manutenzione dei server.
14. Sicurezza e buone pratiche
- Principio del privilegio minimo
- Gestione sicura delle credenziali
- SecureString e limiti di utilizzo
- SecretManagement: introduzione
- Execution Policy e reale funzione di sicurezza
- Firma degli script
- Logging dei moduli
- Script Block Logging
- Trascrizione delle sessioni
- Controllo delle attività amministrative
- Protezione degli script e dei file di configurazione
- Separazione tra codice e credenziali
- Introduzione a Just Enough Administration
- Endpoint PowerShell con privilegi limitati
- Buone pratiche per l’esecuzione remota
- Controllo e revisione del codice
- Utilizzo di repository attendibili
- Il corso si svolgerà in modalità online live streaming, con il docente che terrà le lezioni in diretta.
- I partecipanti dovranno avere a disposizione un Personal Computer e preferibilmente un secondo schermo.
- Saranno forniti labs online che vengono messi a disposizione anche dopo la fine del corso per 3 mesi.
- Al termine del corso, coloro che avranno partecipato ad almeno l'80% delle lezioni riceveranno un attestato di frequenza.
Per partecipare efficacemente è consigliabile possedere:
- conoscenza di base dei sistemi operativi Windows;
- familiarità con utenti, gruppi, servizi, processi, file system e rete;
- conoscenze generali di amministrazione di Windows Server;
- capacità di utilizzare il prompt dei comandi e gli strumenti amministrativi di Windows.