2016-09-16 8 views
0

Следующий код работает в v4, но не в v3.Проблемы с PowerShell с методом Collection.Where()

$Running,$Stopped = (Get-Service).Where({$_.Status -eq 'Running'},'Split') 

Как я могу переписать его, чтобы запустить его в v3 и дать тот же результат?

+0

'$ SRV = Get-Service | group Status -AsHashTable -AsString' может быть близким и для * некоторых * вариантов использования еще лучше. – wOxxOm

ответ

3

Я бы разделить выражение (все версии):

$Running = Get-Service | ? {$_.Status -eq 'Running'} 
$Stopped = Get-Service | ? {$_.Status -ne 'Running'} 

Или, как заметил @wOxxOm, в V3:

$Running = Get-Service | ? Status -eq 'Running' 
$Stopped = Get-Service | ? Status -ne 'Running' 
+1

В PS3 'where' можно сравнить напрямую:' Get-Service | ? Статус -eq «Запуск» – wOxxOm