2016-04-06 67 views
0

我想知道是否有方法在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

現在,我覺得這是一個訣竅,但是你有什麼理由試圖讓它成爲單行嗎? –

回答

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'}} 
相關問題