2016-04-06 15 views
0

'u seçin Bir WMI nesnesinin ifadesinde If ifadesi eklemenin bir yolu olup olmadığını öğrenmek istiyorum | seçmek ...powershell wmi-object |

burada

ben ne var:

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

ve ben çıkışa bir sütun eklemek istiyorsanız hatayı

Herhangi Fikirler yazıyor freespace < 10gb?

+1

Şimdi hissediyorum:

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 

Ne hesaplanan özellikleri ile yapabilirsiniz boş alan miktarına bağlı olarak durumunu gösteren bir özellik ekleyin hile, ama bunu bir tek liner yapmaya çalışmanın bir nedeni var mı? –

cevap

0

Sen şartlı hesaplanmış bir özellik ekleyemezsiniz. Böyle bir şey olsa da, işe yarar: Bu gibi

Get-WmiObject -Class Win32_LogicalDisk ... | 
    Select ..., @{n='Status';e={if ($_.Freespace -lt 10GB) {'Error'} else {'OK'}}