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.
