Поделиться через


Where-Object

Выбирает объекты из коллекции на основе их значений свойств.

Синтаксис

EqualSet (по умолчанию)

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    [-InputObject <PSObject>]
    [-EQ]
    [<CommonParameters>]

ScriptBlockSet

Where-Object
    [-FilterScript] <ScriptBlock>
    [-InputObject <PSObject>]
    [<CommonParameters>]

MatchSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -Match
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CEQ
    [-InputObject <PSObject>]
    [<CommonParameters>]

NotEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -NE
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveNotEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CNE
    [-InputObject <PSObject>]
    [<CommonParameters>]

GreaterThanSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -GT
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveGreaterThanSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CGT
    [-InputObject <PSObject>]
    [<CommonParameters>]

LessThanSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -LT
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveLessThanSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CLT
    [-InputObject <PSObject>]
    [<CommonParameters>]

GreaterOrEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -GE
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveGreaterOrEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CGE
    [-InputObject <PSObject>]
    [<CommonParameters>]

LessOrEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -LE
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveLessOrEqualSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CLE
    [-InputObject <PSObject>]
    [<CommonParameters>]

LikeSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -Like
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveLikeSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CLike
    [-InputObject <PSObject>]
    [<CommonParameters>]

NotLikeSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -NotLike
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveNotLikeSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CNotLike
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveMatchSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CMatch
    [-InputObject <PSObject>]
    [<CommonParameters>]

NotMatchSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -NotMatch
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveNotMatchSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CNotMatch
    [-InputObject <PSObject>]
    [<CommonParameters>]

ContainsSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -Contains
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveContainsSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CContains
    [-InputObject <PSObject>]
    [<CommonParameters>]

NotContainsSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -NotContains
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveNotContainsSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CNotContains
    [-InputObject <PSObject>]
    [<CommonParameters>]

InSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -In
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveInSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CIn
    [-InputObject <PSObject>]
    [<CommonParameters>]

NotInSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -NotIn
    [-InputObject <PSObject>]
    [<CommonParameters>]

CaseSensitiveNotInSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -CNotIn
    [-InputObject <PSObject>]
    [<CommonParameters>]

IsSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -Is
    [-InputObject <PSObject>]
    [<CommonParameters>]

IsNotSet

Where-Object
    [-Property] <String>
    [[-Value] <Object>]
    -IsNot
    [-InputObject <PSObject>]
    [<CommonParameters>]

Not

Where-Object
    [-Property] <String>
    -Not
    [-InputObject <PSObject>]
    [<CommonParameters>]

Описание

Командлет Where-Object выбирает объекты с определенными значениями свойств из коллекции объектов, передаваемых в него. Например, можно использовать командлет Where-Object для выбора файлов, созданных после определенной даты, событий с определенным идентификатором или компьютеров, использующих определенную версию Windows.

Начиная с Windows PowerShell 3.0, существует два разных способа создания команды Where-Object.

  • Синтаксис блока скрипта. Можно использовать блок скрипта для указания имени свойства, оператора сравнения и значения свойства. Where-Object возвращает все объекты, для которых оператор блока скрипта имеет значение true.

    Например, следующая команда получает процессы, в которых равно значение свойства Normal.

    Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}

    Все операторы сравнения PowerShell допустимы в формате блока скрипта. Дополнительные сведения см. в about_Comparison_Operators.

  • Упрощенный синтаксис. Чтобы включить синтаксический синтаксис, Where-Object включает 31 параметров коммутатора, представляющих операторы сравнения. Упрощенный синтаксис проще читать и записывать, чем синтаксис блока скрипта. Можно объединить один из параметров коммутатора с параметрами свойства и значения , чтобы создать команду, которая фильтрует объекты на основе значений их свойств.

    Например, следующие команды также получают процессы, имеющие класс приоритета Normal. Эти команды эквивалентны и можно использовать их взаимозаменяемо.

    Get-Process | Where-Object -Property PriorityClass -Value Normal -EQ

    Get-Process | Where-Object PriorityClass -EQ Normal

    Как показано в примере, имена параметров свойства и значения являются необязательными. Параметр Property — это позиционный параметр, сопоставленный с позицией 0. Параметр Value — это позиционный параметр, сопоставленный с позицией 1. Параметр переключателя, используемый для указания сравнения, можно использовать в любой позиции.

    Упрощенный синтаксис появился в Windows PowerShell 3.0. Дополнительные сведения см. в about_Simplified_Syntax.

При предоставлении одного свойстваWhere-Objectкомандлет обрабатывает значение свойства как логическое выражение. Если значение длины свойства не равно нулю, выражение оценивается как $true. Например: ('hi', '', 'there') | Where-Object Length

Предыдущий пример функционально эквивалентен следующему:

  • ('hi', '', 'there') | Where-Object Length -GT 0
  • ('hi', '', 'there') | Where-Object { $_.Length -gt 0 }

Дополнительные сведения о том, как PowerShell оценивает логические элементы, см. в about_Booleans.

Примеры

Пример 1. Получение остановленных служб

Эти команды получают список всех остановленных служб. $_ автоматическая переменная представляет каждый объект, переданный командлету Where-Object.

Первая команда использует формат блока скрипта, вторая команда использует формат инструкции сравнения. Команды фильтруют службы так же и возвращают те же выходные данные. Только синтаксис отличается.

Get-Service | Where-Object { $_.Status -eq "Stopped" }
Get-Service | Where-Object Status -EQ "Stopped"

Пример 2. Получение процессов на основе рабочего набора

Эти команды перечисляют процессы, имеющие рабочий набор, превышающий 250 мегабайт (МБ). Команды фильтруют процессы одинаково и возвращают те же выходные данные. Только синтаксис отличается.

Get-Process | Where-Object { $_.WorkingSet -gt 250MB }
Get-Process | Where-Object WorkingSet -GT 250MB

Пример 3. Получение процессов на основе имени процесса

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

Команды фильтруют процессы одинаково и возвращают те же выходные данные. Только синтаксис отличается.

Get-Process | Where-Object { $_.ProcessName -match "^p.*" }
Get-Process | Where-Object ProcessName -Match "^p.*"

Пример 4. Использование формата инструкции сравнения

В этом примере показано, как использовать новый формат инструкции сравнения командлета Where-Object.

Первая команда использует формат инструкции сравнения. Он не использует псевдонимы и содержит имя для каждого параметра.

Вторая команда — это более естественное использование формата команды сравнения. Команда заменяет псевдоним where для имени командлета Where-Object и пропускает все необязательные имена параметров.

Команды фильтруют процессы одинаково и возвращают те же выходные данные. Только синтаксис отличается.

Get-Process | Where-Object -Property Handles -GE -Value 1000
Get-Process | where Handles -GE 1000

Пример 5. Получение команд на основе свойств

В этом примере показано, как создавать команды, возвращающие элементы, которые имеют значение true или false или имеют любое значение для указанного свойства. В каждом примере показаны форматы блоков скриптов и инструкций сравнения для команды.

Команды фильтруют входные данные таким же образом и возвращают те же выходные данные. Только синтаксис отличается.

# Use Where-Object to get commands that have any value for the OutputType
# property of the command. This omits commands that do not have an OutputType
# property and those that have an OutputType property, but no property value.
Get-Command | Where-Object OutputType
Get-Command | Where-Object { $_.OutputType }
# Use Where-Object to get objects that are containers. This gets objects that
# have the **PSIsContainer** property with a value of $true and excludes all
# others.
Get-ChildItem | Where-Object PSIsContainer
Get-ChildItem | Where-Object { $_.PSIsContainer }
# Finally, use the -not operator (!) to get objects that are not containers.
# This gets objects that do have the **PSIsContainer** property and those
# that have a value of $false for the **PSIsContainer** property.
Get-ChildItem | Where-Object -Not PSIsContainer
Get-ChildItem | Where-Object { !$_.PSIsContainer }

Пример 6. Использование нескольких условий

Get-Module -ListAvailable | Where-Object {
    ($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
}

В этом примере показано, как создать команду Where-Object с несколькими условиями.

Эта команда получает неядерные модули, поддерживающие функцию обновляемой справки. Команда использует параметр ListAvailable командлета Get-Module для получения всех модулей на компьютере. Оператор конвейера (|) отправляет модули командлету, который получает модули Where-Object , имена которых не начинаются Microsoft с или PSимеют значение для свойства HelpInfoURI , которое сообщает PowerShell, где найти обновленные файлы справки для модуля. Логический оператор -and подключает операторы сравнения.

В примере используется формат команды блока скрипта. Логические операторы, такие как -and,-orи -not допустимы только в блоках скриптов. Их нельзя использовать в формате инструкции сравнения команды Where-Object.

  • Дополнительные сведения о логических операторах PowerShell см. в about_Logical_Operators.
  • Дополнительные сведения о функции обновляемой справки см. в about_Updatable_Help.

Параметры

-CContains

Указывает, что этот командлет получает объекты из коллекции, если значение свойства объекта является точным совпадением с указанным значением. Эта операция учитывает регистр.

Например: Get-Process | Where-Object ProcessName -CContains "svchost"

CContains ссылается на коллекцию значений и имеет значение true, если коллекция содержит элемент, который является точным совпадением с указанным значением. Если входные данные являются одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveContainsSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CEQ

Указывает, что этот командлет получает объекты, если значение свойства совпадает с указанным значением. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CGE

Указывает, что этот командлет получает объекты, если значение свойства больше или равно указанному значению. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveGreaterOrEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CGT

Указывает, что этот командлет получает объекты, если значение свойства больше указанного значения. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveGreaterThanSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CIn

Указывает, что этот командлет получает объекты, если значение свойства содержит указанное значение. Эта операция учитывает регистр.

Например: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn напоминает CContains, за исключением того, что позиции свойств и значений возвращаются обратно. Например, следующие инструкции являются истинными.

"abc", "def" -CContains "abc"

"abc" -CIn "abc", "def"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveInSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CLE

Указывает, что этот командлет получает объекты, если значение свойства меньше или равно указанному значению. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveLessOrEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CLike

Указывает, что этот командлет получает объекты, если значение свойства соответствует значению, включающее подстановочные знаки (*). Эта операция учитывает регистр.

Например: Get-Process | Where-Object ProcessName -CLike "*host"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveLikeSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CLT

Указывает, что этот командлет получает объекты, если значение свойства меньше указанного значения. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveLessThanSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CMatch

Указывает, что этот командлет получает объекты, если значение свойства соответствует указанному регулярному выражению. Эта операция учитывает регистр. Если входные данные являются одним объектом, соответствующее значение сохраняется в $Matches автоматической переменной.

Например: Get-Process | Where-Object ProcessName -CMatch "Shell"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveMatchSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CNE

Указывает, что этот командлет получает объекты, если значение свойства отличается от указанного значения. Эта операция учитывает регистр.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveNotEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CNotContains

Указывает, что этот командлет получает объекты, если значение свойства объекта не совпадает с указанным значением. Эта операция учитывает регистр.

Например: Get-Process | Where-Object ProcessName -CNotContains "svchost"

NotContains и CNotContains ссылаются на коллекцию значений и имеют значение true, если коллекция не содержит никаких элементов, которые точно соответствуют указанному значению. Если входные данные являются одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveNotContainsSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CNotIn

Указывает, что этот командлет получает объекты, если значение свойства не совпадает с указанным значением. Эта операция учитывает регистр.

Например: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Операторы NotIn и CNotIn похожи на NotContains и CNotContains, за исключением того, что позиции свойств и значений возвращаются обратно. Например, приведенные ниже инструкции имеют значение true.

"abc", "def" -CNotContains "Abc"

"abc" -CNotIn "Abc", "def"

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveNotInSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CNotLike

Указывает, что этот командлет получает объекты, если значение свойства не соответствует значению, включающее подстановочные знаки. Эта операция учитывает регистр.

Например: Get-Process | Where-Object ProcessName -CNotLike "*host"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveNotLikeSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CNotMatch

Указывает, что этот командлет получает объекты, если значение свойства не соответствует указанному регулярному выражению. Эта операция учитывает регистр. Если входные данные являются одним объектом, соответствующее значение сохраняется в $Matches автоматической переменной.

Например: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CaseSensitiveNotMatchSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Contains

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

Например: Get-Process | Where-Object ProcessName -Contains "Svchost"

Если входные данные являются одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:IContains

Наборы параметров

ContainsSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-EQ

Указывает, что этот командлет получает объекты, если значение свойства совпадает с указанным значением.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:IEQ

Наборы параметров

EqualSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-FilterScript

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

Имя параметра, FilterScript, является необязательным.

Свойства параметра

Тип:ScriptBlock
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ScriptBlockSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-GE

Указывает, что этот командлет получает объекты, если значение свойства больше или равно указанному значению.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:IGE

Наборы параметров

GreaterOrEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-GT

Указывает, что этот командлет получает объекты, если значение свойства больше указанного значения.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:IGT

Наборы параметров

GreaterThanSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-In

Указывает, что этот командлет получает объекты, если значение свойства соответствует любому из указанных значений. Рассмотрим пример.

Get-Process | Where-Object -Property ProcessName -In -Value "Svchost", "TaskHost", "WsmProvHost"

Если входные данные являются одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Если значение свойства объекта является массивом, PowerShell использует равенство ссылок для определения соответствия. Where-Object возвращает объект, только если значение параметра Property и любое значение Value являются одинаковым экземпляром объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:Иин

Наборы параметров

InSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputObject

Указывает объекты для фильтрации. Можно также передать объекты в Where-Object.

При использовании параметра Where-ObjectWhere-Objectвместо командлет обрабатывает InputObject как один объект. Это верно, даже если значение является коллекцией, которая является результатом команды, например -InputObject (Get-Process).

Так как InputObject не может возвращать отдельные свойства из массива или коллекции объектов, рекомендуется фильтровать коллекцию объектов для тех объектов, которые имеют определенные значения в определенных свойствах, которые используются Where-ObjectWhere-Object в конвейере, как показано в примерах в этом разделе.

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Is

Указывает, что этот командлет получает объекты, если значение свойства является экземпляром указанного типа .NET. Заключите имя типа в квадратные скобки.

Например: Get-Process | Where-Object StartTime -Is [datetime]

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

IsSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-IsNot

Указывает, что этот командлет получает объекты, если значение свойства не является экземпляром указанного типа .NET.

Например: Get-Process | where StartTime -IsNot [datetime]

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

IsNotSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LE

Указывает, что этот командлет получает объекты, если значение свойства меньше или равно указанному значению.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:ИЛЬ

Наборы параметров

LessOrEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Like

Указывает, что этот командлет получает объекты, если значение свойства соответствует значению, включающее подстановочные знаки (*).

Например: Get-Process | Where-Object ProcessName -Like "*host"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:ILike

Наборы параметров

LikeSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LT

Указывает, что этот командлет получает объекты, если значение свойства меньше указанного значения.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:ILT

Наборы параметров

LessThanSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Match

Указывает, что этот командлет получает объекты, если значение свойства соответствует указанному регулярному выражению. Если входные данные являются одним объектом, соответствующее значение сохраняется в $Matches автоматической переменной.

Например: Get-Process | Where-Object ProcessName -Match "shell"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:IMatch

Наборы параметров

MatchSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NE

Указывает, что этот командлет получает объекты, если значение свойства отличается от указанного значения.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:ИНЕ

Наборы параметров

NotEqualSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Not

Указывает, что этот командлет получает объекты, если свойство не существует или имеет значение $null или $false.

Например: Get-Service | Where-Object -Not "DependentServices"

Этот параметр появился в Windows PowerShell 6.1.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

Not
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NotContains

Указывает, что этот командлет получает объекты, если ни один из элементов в значении свойства не соответствует точному значению указанного значения.

Например: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains ссылается на коллекцию значений и имеет значение true, если коллекция не содержит никаких элементов, которые точно соответствуют указанному значению. Если входные данные являются одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:INotContains

Наборы параметров

NotContainsSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NotIn

Указывает, что этот командлет получает объекты, если значение свойства не соответствует ни одному из указанных значений.

Например: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Если значение Value является одним объектом, PowerShell преобразует его в коллекцию одного объекта.

Если значение свойства объекта является массивом, PowerShell использует равенство ссылок для определения соответствия. Where-Object возвращает объект, только если значение свойства и любое значение Value не совпадает с экземпляром объекта.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:INotIn

Наборы параметров

NotInSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NotLike

Указывает, что этот командлет получает объекты, если значение свойства не соответствует значению, включающее подстановочные знаки (*).

Например: Get-Process | Where-Object ProcessName -NotLike "*host"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:INotLike

Наборы параметров

NotLikeSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NotMatch

Указывает, что этот командлет получает объекты, если значение свойства не соответствует указанному регулярному выражению. Если входные данные являются одним объектом, соответствующее значение сохраняется в $Matches автоматической переменной.

Например: Get-Process | Where-Object ProcessName -NotMatch "powershell"

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:INotMatch

Наборы параметров

NotMatchSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Property

Указывает имя свойства входного объекта. Это свойство должно быть свойством экземпляра, а не статическим. Это позиционный параметр, поэтому имя, свойство, является необязательным.

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

EqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LessOrEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
GreaterThanSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveGreaterThanSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LessThanSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLessThanSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
GreaterOrEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveGreaterOrEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLessOrEqualSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LikeSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLikeSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotLikeSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotLikeSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
MatchSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveMatchSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotMatchSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotMatchSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
ContainsSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveContainsSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotContainsSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotContainsSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
InSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveInSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotInSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotInSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
IsSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
IsNotSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
Not
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Value

Указывает значение свойства. Имя параметра, значение, является необязательным. Этот параметр принимает подстановочные знаки при использовании со следующими параметрами сравнения:

  • Клике
  • CNotLike
  • Like
  • NotLike

Этот параметр появился в Windows PowerShell 3.0.

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

EqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveGreaterOrEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
GreaterThanSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveGreaterThanSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LessThanSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLessThanSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
GreaterOrEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LessOrEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLessOrEqualSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
LikeSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveLikeSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotLikeSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotLikeSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
MatchSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveMatchSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotMatchSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotMatchSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
ContainsSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveContainsSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotContainsSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotContainsSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
InSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveInSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NotInSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
CaseSensitiveNotInSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
IsSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
IsNotSet
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

PSObject

Вы можете передать любой объект в этот cmdlet.

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

Object

Этот командлет возвращает выбранные элементы из входного набора объектов.

Примечания

PowerShell включает следующие псевдонимы для Where-Object:

  • Все платформы:
    • ?
    • where

Начиная с Windows PowerShell 4.0, были добавлены методы Where и ForEach для использования с коллекциями.

Дополнительные сведения об этих методах см. здесь about_Arrays