检索特定驱动器数据 - Get-WmiObject Win32_logicaldisk

Retrieve specific drive data - Get-WmiObject Win32_logicaldisk

我正在尝试使用 Get-WmiObject 检索特定驱动器的可用空间。

在我的机器上使用 Get-WmiObject Win32_logicaldisk returns 以下内容:

PS C:\Users\Julian\Desktop\Tools\Powershell> Get-WmiObject Win32_logicaldisk | Select-Object DeviceID, FreeSpace
DeviceID  FreeSpace
--------  ---------
C:  47114498048
S:  9963356160
Z:  985061974016

我想根据我指定的驱动器盘符 (DeviceID) 专门请求 FreeSpace,但是我不确定如何操作,因为我对 powershell 还很陌生。任何帮助将不胜感激。

使用-Filter参数过滤源对象:

PS> Get-WmiObject Win32_logicaldisk -Filter 'DeviceId = "C:"' | Select-Object DeviceID, FreeSpace

DeviceID   FreeSpace
--------   ---------
C:       14188314624

过滤器表达式 'DeviceId = "C:"' 本质上是 WQL 语句的 WHERE 子句。


但是请注意,*-Cim-* cmdlet 已取代 PSv3+ 中的 *-Wmi* cmdlet。

幸运的是,WQL 是 CQL (the CIM Query Language) 的一个实现,因此可以使用相同的过滤器:

PS> Get-CimInstance Win32_logicaldisk -Filter 'DeviceId = "C:"' | Select-Object DeviceID, FreeSpace

DeviceID   FreeSpace
--------   ---------
C:       14188314624