← Tutte le risorse

PowerShell: analisi e gestione dei dischi logici

Interrogare i dischi logici con Get-CimInstance, individuare quelli con poco spazio libero e creare un report ordinato con PowerShell. Video e traccia dell’esercitazione.

Traccia dell’esercitazione

Crea uno script che interroga il sistema per ottenere informazioni sui dischi logici tramite Get-CimInstance, usando la classe Win32_LogicalDisk. Individua i dischi con spazio libero inferiore a una soglia definita e crea un report formattato con dati riepilogativi.

La classe Win32_LogicalDisk è disponibile su Windows.

1. Recupero dei dati

Utilizza Get-CimInstance -ClassName Win32_LogicalDisk per ottenere l’elenco dei dischi logici.

2. Filtraggio dei dischi

Applica Where-Object per selezionare i dischi il cui spazio libero, indicato dalla proprietà FreeSpace, è inferiore alla soglia scelta. Usa un operatore di confronto come -lt.

Puoi usare, per esempio, una soglia di 10GB. Le proprietà Size e FreeSpace esprimono le dimensioni in byte; PowerShell permette di scrivere la soglia con il suffisso GB.

Facoltativamente, verifica la presenza di determinati dischi con gli operatori di containment -contains o -in.

3. Creazione di oggetti personalizzati

Per ogni disco che soddisfa il criterio, crea un oggetto personalizzato con la sintassi [PSCustomObject]@{ ... }, raccogliendo queste informazioni:

  • Lettera del disco, dalla proprietà DeviceID.
  • Dimensione totale, dalla proprietà Size.
  • Spazio libero, dalla proprietà FreeSpace.
  • Percentuale di utilizzo, calcolata a partire dalla dimensione totale e dallo spazio libero.

Nota: @{ ... } crea una hashtable; il cast [PSCustomObject] la trasforma in un oggetto con le proprietà da usare nel report. Prima di calcolare la percentuale, controlla che i valori siano disponibili e che la dimensione totale sia maggiore di zero.

4. Ordinamento e visualizzazione

Usa Sort-Object per ordinare gli oggetti in base allo spazio libero o alla percentuale di utilizzo. Seleziona le colonne con Select-Object -Property, quindi visualizza il report con Format-Table.

5. Controlli e messaggi

Utilizza un costrutto if/else per verificare se sono stati individuati dischi con spazio insufficiente. In caso affermativo, mostra un avviso con Write-Output; altrimenti, segnala che nessun disco rientra nella condizione di allerta.