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


Where-Object

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

Синтаксис

Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     [-EQ]
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-FilterScript] <ScriptBlock>
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Match
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CEQ
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Like
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Contains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -In
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Is
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -IsNot
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     -Not
     [<CommonParameters>]

Описание

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

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

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

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

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

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

  • Оператор сравнения. Можно также написать оператор сравнения, который больше похож на естественный язык. Операторы сравнения были представлены в Windows PowerShell 3.0.

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

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

    Get-Process | Where-Object PriorityClass -EQ "Normal"

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

При указании одного свойстваWhere-Objectв командлет обрабатывает значение свойства как логическое выражение. Если значение свойства Length не равно нулю, выражение принимает значение $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 позволяет использовать совпадения регулярных выражений.

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

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 сравнения команды.

Параметры

-CContains

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

Пример: Get-Process | Where-Object ProcessName -CContains "svchost"

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CEQ

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGE

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGT

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CIn

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

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

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

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLE

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLike

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLT

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CMatch

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

Пример: Get-Process | Where-Object ProcessName -CMatch "Shell"

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNE

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotContains

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

Пример: Get-Process | Where-Object ProcessName -CNotContains "svchost"

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotIn

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

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

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotLike

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotMatch

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

Пример: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Contains

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

Пример: Get-Process | Where-Object ProcessName -Contains "Svchost"

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

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

Type:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-EQ

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

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

Type:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterScript

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

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

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GE

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

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

Type:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GT

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

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

Type:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-In

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

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

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

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

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

Type:SwitchParameter
Aliases:IIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

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

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

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Is

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-IsNot

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LE

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

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

Type:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Like

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

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

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

Type:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LT

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

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

Type:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Match

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

Пример: Get-Process | Where-Object ProcessName -Match "shell"

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

Type:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NE

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

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

Type:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Not

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

Пример: Get-Service | Where-Object -Not "DependentServices"

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotContains

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

Пример: Get-Process | Where-Object ProcessName -NotContains "Svchost"

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

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

Type:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotIn

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

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

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

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

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

Type:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotLike

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

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

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

Type:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

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

Пример: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

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

Type:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Property

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

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Value

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

  • CLike
  • CNotLike
  • Как
  • NotLike

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

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

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

PSObject

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

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

Object

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

Примечания

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

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

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

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