0

我想知道是否有办法在 WMI 对象的表达式中添加 If 语句 | 选择 ...

这是我所拥有的:

Get-WmiObject -Class Win32_LogicalDisk -Filter DriveType=3 -ComputerName $ServersinFarm | Select @{Name='Server Name';Expression={$_.SystemName}} , DeviceID , @{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}}, @{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}}

我想在输出中添加一列如果写入错误的可用空间 < 10gb

有任何想法吗?

4

1 回答 1

0

您不能有条件地添加计算属性。不过,这样的事情会起作用:

Get-WmiObject -Class Win32_LogicalDisk ... |
    Select ..., Freespace, ... |
    ForEach-Object {
        if ($_.freespace -lt 10GB) {
            $_ | Add-Member -Name 'Status' -Type NoteProperty -Value 'Error'
        }
        $_
    } | Select-Object -Exclude Freespace

您可以对计算属性执行的操作是添加一个属性,根据可用空间量指示状态:

Get-WmiObject -Class Win32_LogicalDisk ... |
    Select ..., @{n='Status';e={if ($_.Freespace -lt 10GB) {'Error'} else {'OK'}}
于 2016-04-06T18:57:02.640 回答