Создает фильтр, который определяет, какие объекты будут переданы по командному конвейеру.

Синтаксис

Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

Описание

Командлет Where-Object выбирает объекты из переданного ему набора объектов. Он использует блок скрипта как фильтр и выполняет блок скрипта для каждого объекта. Если в результате выполнения получается значение True, этот объект возвращается. Если в результате выполнения не получается значение True, этот объект игнорируется.

Параметры

-FilterScript <scriptblock>

Указывает блок скрипта, используемый для фильтрации объектов. Заключайте блок скрипта в фигурные скобки ( {} ).

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <psobject>

Указывает объекты, которые необходимо отфильтровать. Кроме того, можно передать объекты командлету Where-Object по конвейеру.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.Management.Automation.PSObject

Объекты для фильтрации можно передавать командлету Where-Object по конвейеру.

Выходные данные

Пример 1

C:\PS>get-service | where-object {$_.Status -eq "Stopped"}

Описание
-----------
Эта команда возвращает список всех служб, которые в данный момент остановлены. Символ "$" представляет каждый объект, переданный командлету Where-Object.






Пример 2

C:\PS>get-process | where-object {$_.workingset -gt 25000*1024}

Описание
-----------
Эта команда возвращает список процессов, размер рабочего множества которых превышает 25 000 КБ. Так как значение свойства WorkingSet хранится в байтах, значение 25 000 умножено на 1 024.






Пример 3

C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" }

Описание
-----------
Эта команда получает процессы, свойство ProcessName которых начинаются на букву "p". Оператор match позволяет использовать в предложении Where регулярные выражения.






Пример 4

C:\PS>get-process -name svchost | where-object {$True}

Описание
-----------
Эта команда перечисляет все процессы по имени "svchost". 

Командлет Where-Object выполняет блок скрипта, который обычно включает ссылку на текущий объект в конвейере ($_), и приводит результат к логическому типу: True или False. В случае результата True объект возвращается. В противном случае он отбрасывается. 

В данном случае блок скрипта просто возвращает True, поэтому все объекты возвращаются.