我正在尝试使用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比较陌生。任何帮助将不胜感激。
答案 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