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

时间:2018-06-21 00:16:26

标签: powershell filter wmi wql cim

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

在我的计算机上使用Get-WmiObject Win32_logicaldisk返回以下内容:

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比较陌生。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

使用-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