Come ottenere informazioni sullo spazio disco utilizzando PowerShell
- Ottenere informazioni sullo spazio su disco usando la libreria PSDrive in PowerShell
- Ottenere informazioni sullo spazio su disco usando l’oggetto WMI in 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:'"
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn