使用 PowerShell 獲取磁碟空間資訊

Marion Paul Kenneth Mendoza 2023年1月30日 2022年7月18日
  1. 使用 PowerShell 中的 PSDrive 庫獲取磁碟空間資訊
  2. 在 PowerShell 中使用 WMI 物件獲取磁碟空間資訊
使用 PowerShell 獲取磁碟空間資訊

PowerShell 可以在我們的 Windows 作業系統系統上生成綜合報告。這些報告中的指標之一是我們的系統驅動器列表及其驅動器空間資訊。

在本文中,我們將學習一些命令,這些命令將匯出我們所有系統驅動器上的資訊,並學習如何使用 PowerShell 確定機器中剩餘的驅動器空間。

使用 PowerShell 中的 PSDrive 庫獲取磁碟空間資訊

PSDrive 庫是一組命令,負責使用 PowerShell 管理、建立和刪除臨時和持久驅動器。第一種方法將關注查詢命令 Get-PSDrive

通過執行 Get-PSDrive 命令,我們可以快速獲取安裝在我們系統中的所有儲存庫的資訊。

示例程式碼:

Get-PSDrive

輸出:

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

正如我們從上面的輸出中看到的,Get-PSDrive 命令在其物件中有一個 Name 屬性。通過了解這些資訊,我們可以通過過濾其驅動器名稱並選擇另一個物件屬性來確定其空閒大小來隔離特定驅動器。

執行以下命令進行測試。

示例程式碼:

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

輸出:

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

但是,如果我們將最新的輸出與之前的輸出進行比較,我們可以看到空閒大小已將自身轉換為位元組。因此,要將值重新轉換為千兆位元組 (GB),我們必須在選擇物件屬性時設定自定義表示式。

執行以下命令進行測試。

示例程式碼:

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

輸出:

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

上面的示例程式碼將列重新命名為 Free (GB) 並將浮點值的輸出四捨五入到小數點後兩位。

在 PowerShell 中使用 WMI 物件獲取磁碟空間資訊

獲取磁碟空間資訊的另一種方法是使用 WMI Object 類。這個類的功能類似於 PSDrive,但唯一的區別是這個庫可以查詢遠端計算機。

示例程式碼:

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

輸出:

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

要在遠端計算機上啟動查詢,請在 Get-WMIObject 命令中新增 ComputerName 引數。

Get-WmiObject Win32_LogicalDisk -ComputerName "REMOTE-PC" -Filter "DeviceID='C:'"
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn