只需添加一个Where-Object{}
,例如:
$size = @{label = "Size(GB)"; expression = {[int]($_.Size/1GB)}}
$freeSpace = @{label = "FreeSpace(GB)"; expression = {[int]($_.FreeSpace/1GB)}}
$freeSpacePercent = @{label = "FreeSpace(%)"; expression = {[int]($_.FreeSpace/$_.Size * 100)}}
Get-CimInstance -ClassName Win32_LogicalDisk |
Select-Object -Property DeviceID,VolumeName,$size,$freeSpace,$freeSpacePercent |
Where-Object{ $_."FreeSpace(%)" -le 20 }
请注意,它不到 20%。还要注意引号,因为您在属性名称中使用了特殊字符。
此外,您正在选择一个[Int]
让银行家们非常接近的整数。这可能是故意的,但是当我做这种事情时,我喜欢使用 `[Math]::Round() 函数。你可以改变你的表达来得到:
$size = @{label="Size(GB)"; expression = { [Math]::Round( ($_.Size/1GB), 2 ) }}
$freeSpace = @{label="FreeSpace(GB)"; expression = { [Math]::Round( ($_.FreeSpace/1GB), 2 ) }}
$freeSpacePercent = @{label="FreeSpace(%)"; expression = { [Math]::Round( ($_.FreeSpace/$_.Size * 100), 2 ) }}
Get-CimInstance -ClassName Win32_LogicalDisk |
Select-Object -Property DeviceID,VolumeName,$size,$freeSpace,$freeSpacePercent