PowerShell脚本:
Get-Wmiobject -class Win32_logicaldisk -computername XXXXXXX -filter`
"drivetype=3" | Sort-Object -Property DeviceID | Format-Table -Property DeviceID,`
@{label='FreeSpace(MB)'; expression={$_.Freespace / 1MB -as `[int]}},@{label='Size(GB)'; expression={$_.Size / 1GB -as `[int]}},@{label='%Free'; expression={$_.FreeSpace / $_.Size * 100 -as [int]}}
输出:
DeviceID FreeSpace(MB) Size(GB) %
-------- ------------- -------- -----
C: 10139 99 10
D: 258235 300 84
E: 51098 50 100
F: 41964 50 82
我的问题是,如果可用空间小于15%,此设备行将显示为红色。
答案 0 :(得分:0)
您需要使用Write-Host
来指定文本颜色。
首先,使用Format-Table
将Out-String -Stream
的输出转换为简单的字符串。之后,为每个条件指定文本颜色,并使用Write-Host
在屏幕上显示。
Get-Wmiobject -Class Win32_LogicalDisk -ComputerName . -Filter "drivetype=3" |
Sort-Object -Property DeviceID | Format-Table -Property @(
"DeviceID"
@{ l = 'FreeSpace(MB)'; e = { $_.Freespace / 1MB -as [int] } }
@{ l = 'Size(GB)'; e = { $_.Size / 1GB -as [int] } }
@{ l = '%Free'; e = { $_.FreeSpace / $_.Size * 100 -as [int] } }
) | Out-String -Stream | ForEach-Object {
Write-Host $_ -ForegroundColor ("White", "Red")[$_ -match "\d+$" -and [int]$Matches[0] -lt 15]
}