powershell wmi-object |选择

问题描述:

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

这里是我有:

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 <写入错误

什么想法?

+1

现在,我觉得这是一个诀窍,但是你有什么理由试图让它成为单行吗? –

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

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'}}