I Migliori script powershell del 2025

PowerShell continua a essere una delle piattaforme di scripting più versatili per amministratori di sistema e sviluppatori, offrendo un controllo granulare su sistemi Windows e oltre. Nel 2025, le esigenze dell’IT moderno hanno spinto la comunità a sviluppare script innovativi per migliorare produttività, sicurezza e automazione. In questo articolo, esploreremo i migliori script PowerShell del 2025 che ogni professionista IT dovrebbe conoscere.


1. Automazione delle Patch di Sicurezza

Con l’aumento delle minacce informatiche, mantenere i sistemi aggiornati è più cruciale che mai. Uno script particolarmente popolare quest’anno è quello che automatizza il controllo, il download e l’installazione delle patch di sicurezza tramite Windows Update.

Caratteristiche principali:

Esempio di codice:

# Controllo e installazione delle patch di sicurezza
Install-Module -Name PSWindowsUpdate -Force

# Scarica e installa aggiornamenti critici
Get-WindowsUpdate -Install -AcceptAll -AutoReboot

# Genera un report
Get-WindowsUpdate -PSWUSettings | Out-File -FilePath "C:\Reports\WindowsUpdateReport.txt"

Questo script analizza anche gli aggiornamenti pendenti per le app installate nel sistema, scaricando in autonomia i pacchetti di aggiornamento ed eseguendo l’installazione in modalità silente.

Di seguito uno script utilizzabile dedicato alla questione:


2. Monitoraggio delle Risorse di Rete

Con la crescente complessità delle infrastrutture di rete, monitorare le risorse critiche è fondamentale. Questo script esegue il ping di dispositivi chiave e avvisa gli amministratori in caso di tempi di risposta elevati o guasti.

E’ possibile modificare lo script inserendo nella prima riga $Servers gli indirizzi IP o i domini che vogliamo monitorare, per la possibilità di invio mail approfondirne la configurazione qui.

Caratteristiche principali:

  • Notifiche via email in caso di downtime.
  • Log dettagliati delle prestazioni di rete.

Esempio di codice:

# Monitoraggio della rete
$servers = @("192.168.1.1", "192.168.1.2", "angolodiwindows.com")
foreach ($server in $servers) {
    if (Test-Connection -ComputerName $server -Count 2 -Quiet) {
        Write-Output "$server è raggiungibile."
    } else {
        Write-Output "$server non è raggiungibile."
        Send-MailMessage -From "alert@company.com" -To "admin@company.com" -Subject "Allarme: Server $server offline" -Body "Il server $server non risponde."
    }
}

3. Gestione delle Credenziali con Sicurezza Avanzata

Con l’aumento delle violazioni dei dati, gestire le credenziali in modo sicuro è diventato essenziale. Questo script utilizza il modulo SecretManagement per archiviare e recuperare le credenziali in modo protetto.

Caratteristiche principali:

  • Archiviazione sicura delle credenziali.
  • Integrazione con vault di terze parti.
  • Accesso facilitato alle credenziali per script automatizzati.

Esempio di codice:

# Configurazione del vault e gestione delle credenziali
Install-Module -Name Microsoft.PowerShell.SecretManagement -Force

# Registra un vault
Register-SecretVault -Name LocalStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Get-SecretVault

# Salva credenziali
Set-Secret -Name "DBCredentials" -Secret (Get-Credential)

# Recupera credenziali
$creds = Get-Secret -Name "DBCredentials"
Write-Output "Credenziali recuperate con successo."

4. Pulizia e Ottimizzazione dei File di Log

I file di log possono crescere rapidamente, occupando spazio prezioso. Questo script automatizza la pulizia dei log vecchi, mantenendo solo quelli rilevanti.

Caratteristiche principali:

  • Identificazione e rimozione di file di log obsoleti.
  • Creazione di backup dei log importanti.
  • Esecuzione pianificata.

Esempio di codice:

# Pulizia dei file di log
$logPath = "C:\Logs"
$retentionDays = 30

# Trova e cancella log più vecchi del periodo di retention
Get-ChildItem -Path $logPath -Recurse | Where-Object {
    $_.LastWriteTime -lt (Get-Date).AddDays(-$retentionDays)
} | Remove-Item -Force

Write-Output "Pulizia completata per i log più vecchi di $retentionDays giorni."

5. Creazione di Backup Incrementali

Questo script aiuta a creare backup incrementali dei file più importanti, salvandoli in una directory remota o in un servizio cloud.

Caratteristiche principali:

  • Backup solo dei file modificati.
  • Opzione per compressione e crittografia dei file.
  • Compatibilità con servizi cloud come Azure.

Esempio di codice:

# Backup incrementale
$sourcePath = "C:\AMD"
$destinationPath = "D:\Backup"

# Copia solo i file modificati
Robocopy $sourcePath $destinationPath /MIR /XO /Z /LOG:"C:\BackupLogs\BackupLog.txt"
Write-Output "Backup incrementale completato."

6. Analisi dei Permessi sui File

Garantire che i permessi sui file siano corretti è fondamentale per prevenire accessi non autorizzati. Questo script analizza i permessi di una directory e genera un report dettagliato.

Caratteristiche principali:

  • Identificazione di permessi troppo permissivi.
  • Generazione di report CSV per analisi approfondita.

Esempio di codice:

# Analisi dei permessi sui file
$path = "C:\SecureData"
$report = "C:\Reports\PermissionReport.csv"

Get-Acl -Path $path | ForEach-Object {
    $_.Access | Select-Object @{Name="FilePath"; Expression={$_.Path}}, IdentityReference, FileSystemRights, AccessControlType
} | Export-Csv -Path $report -NoTypeInformation

Write-Output "Report sui permessi generato: $report"

7. Notifiche Proattive sui Rischi di Sicurezza

Grazie all’integrazione con feed di sicurezza e API di analisi, questo script invia notifiche automatiche sugli ultimi rischi di sicurezza che potrebbero influenzare l’infrastruttura.

Caratteristiche principali:

  • Raccolta automatica di informazioni da fonti attendibili.
  • Invio di notifiche in tempo reale.

Esempio di codice:

# Notifiche di sicurezza
$apiUrl = "https://dominiodamonitorare.com/"
$response = Invoke-RestMethod -Uri $apiUrl -Method Get

foreach ($news in $response.articles) {
    Send-MailMessage -From "security@company.com" -To "admin@company.com" -Subject "Notizia di Sicurezza: $news.title" -Body $news.description
}

Write-Output "Notifiche di sicurezza inviate con successo."

Conclusione

. Integrarli nel proprio workflow quotidiano non solo migliorerà la produttività, ma contribuirà anche a mantenere l’infrastruttura al sicuro e ottimizzata. Se non hai ancora iniziato a utilizzare questi strumenti, è il momento di farlo!

Articoli Correlati

Come mai Very Mobile mi addebita 29 centesimi per un SMS?

Quando la TV ti faceva vedere in 3D… Bastava un paio di occhiali dalla Standa

Come bloccare le chiamate dall’estero con TIM