2016-01-05 2 views
0

Как бы вы упростили следующий сценарий?Упрощение Where-Object для фильтрации нескольких объектов

Get-ADComputer -Filter * -properties * | Where-Object { 
    $_.OperatingSystem -like "*2003*" -and 
    $_.OperatingSystem -like "*2008*" -and 
    $_.OperatingSystem -like "*2012*" 
} | sort name | ft name, description, OperatingSystem 

Я искал какое-то время для этого и хотел бы помочь. Я знаю, что могу упростить, используя "*20*", и я получу свой результат, но я хотел бы знать, как использовать несколько критериев (например, XP, Windows 10 и т. Д.).

+2

Возможно, каламбур, но то, что у вас там, никогда не будет возвращать что-либо, пока эти условия являются ANDed вместо ORed. – mjolinor

+0

Как насчет фактического использования tat -Filter thingie для начала? –

ответ

3

можно использовать -match оператор с регулярными выражениями шаблона

...|?{$_.operatingsystem -match "2008|2012|XP" } 

Знайте, что ? является псевдонимом для Where-Object. Подробнее см. Вывод Get-Alias.

+0

Спасибо. Это работает. Я все еще учусь. – Gaetan

+1

Я искал подтверждение. Готово – Gaetan

Смежные вопросы