2015-10-10 3 views
0

Я хотел бы отфильтровать результат по автоматическому FL.powershell - фильтр результат FL

например, Get-ADUser someuser -Prop * возвращает тонны строк в формате списка, и меня интересуют только те, которые содержат текст, независимо от того, какое поле. например, строки, содержащие True или те, которые содержат foo.

Я ни в коей мере заинтересован в получении результирующих строк в переменном или сделать дальнейшую обработку на соответствующем поле, а просто фильтровать отображаемые строки на экране, а-ля grep

у вас есть какие-либо подсказки для меня ?

PS. Я застрял с PS v2 для этого.

+0

Используйте 'where-object' для' Get-Aduser'. Возможно, с помощью select-object вы получите нужные поля. __DONT фильтрует текст из 'FL'__. Он разбивает объекты. Вы просто делаете это сложнее – Matt

+0

Более того, если вы запустите эту команду с '-Property *' на множестве учетных записей, если будет очень медленно. Вы уверены, что не знаете, какие поля вы ищете? – sodawillow

+0

обычно, я делаю это, когда знаю, что значение доступно где-то, потенциально в кратных полях, но я не знаю, в каком из них. как я уже сказал, меня не интересует дальнейшая обработка в соответствующих полях. по крайней мере, не напрямую. Фильтрация результатов показывает имя потенциальных полей. – Peyre

ответ

1

В конце концов я нашел очень простой способ поиска выхода PS :)

Get-ADUser someuser -Prop * | Out-String -Stream | Select-String foo 

надеюсь, что это поможет кому-то.

1

Это действительно интересная проблема. Один из способов сделать это - передать вывод в файл. Например:

Get-ADUser someuser -Prop * > tmp 
Select-String -pattern "(True|foo)" -path tmp | Select-Object -ExpandProperty Line 
Remove-Item tmp