HOWTO · PowerShell

Come ottenere informazioni sullo spazio disco utilizzando PowerShell

Questo articolo discute un paio di comandi che esportano informazioni su tutte le nostre unità di sistema e impariamo come determinare quanto spazio su disco è rimasto nella nostra macchina utilizzando PowerShell.

PowerShell può generare report completi sui nostri sistemi operativi Windows. Una delle metriche in questi report è l’elenco delle nostre unità di sistema e le informazioni sullo spazio disponibile.

In questo articolo, apprenderemo un paio di comandi che esportano informazioni su tutte le nostre unità di sistema e impareremo a determinare quanto spazio libero c’è nella nostra macchina utilizzando PowerShell.

Ottenere informazioni sullo spazio su disco usando la libreria PSDrive in PowerShell

La libreria PSDrive è un insieme di comandi responsabili della gestione, creazione e eliminazione di unità temporanee e persistenti utilizzando PowerShell. Questo primo metodo si concentrerà sul comando di query Get-PSDrive.

Eseguendo il comando Get-PSDrive, possiamo ottenere rapidamente le informazioni su tutte le nostre repository montate nel nostro sistema.

Codice di esempio:

Get-PSDrive

Output:

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Alias                                  Alias
C                 442.84         21.56 FileSystem    C:\                                               Users\KentMarion
Cert                                   Certificate   \
D                3507.38        218.63 FileSystem    D:\
Env                                    Environment
Function                               Function
G                 519.22        412.28 FileSystem    G:\
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

Come abbiamo visto dall’output sopra, il comando Get-PSDrive ha un attributo Name nel suo oggetto. Sapendo questa informazione, possiamo isolare un’unità specifica filtrando il nome dell’unità e selezionando un altro attributo dell’oggetto per determinare la sua dimensione libera.

Esegui il seguente comando per verificare.

Codice di esempio:

Get-PSDrive -Name C | Select-Object Name, Free

Output:

Name        Free
----        ----
C    23061344256

Tuttavia, se confrontiamo il nostro ultimo output con l’output precedente, possiamo vedere che la dimensione libera si è convertita in byte. Pertanto, per riconvertire il valore in gigabyte (GB), dobbiamo impostare un’espressione personalizzata quando selezioniamo l’attributo dell’oggetto.

Esegui il seguente comando per verificare.

Codice di esempio:

Get-PSDrive -Name C | Select-Object Name, @{Name = "Free (GB)"; Expression = { [Math]::Round($_.Free / 1GB, 2) } }

Output:

Name        Free (GB)
----        ----
C           21.41

Il codice di esempio sopra rinomina la colonna in Free (GB) e arrotonda l’output del valore flottante a due decimali.

Ottenere informazioni sullo spazio su disco usando l’oggetto WMI in PowerShell

Un altro metodo per ottenere informazioni sullo spazio su disco è utilizzare la classe oggetto WMI. Questa classe funziona in modo simile a PSDrive, ma l’unica differenza è che questa libreria può effettuare query su computer remoti.

Codice di esempio:

Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object DeviceID, @{Name = "Free (GB)"; Expression = { [Math]::Round($_.FreeSpace / 1GB, 2) } }

Output:

DeviceID Free (GB)
-------- ---------
C:           21.42

Per avviare una query su un computer remoto, aggiungi il parametro ComputerName all’interno del comando Get-WMIObject.

Get-WmiObject Win32_LogicalDisk -ComputerName "REMOTE-PC" -Filter "DeviceID='C:'"