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


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

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

Параметры

-CContains

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

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CEQ

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CGE

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CGT

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера: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
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CLE

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CLike

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CLT

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CMatch

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CNE

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CNotContains

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

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CNotIn

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

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

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CNotLike

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CNotMatch

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Contains

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

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

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

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

Тип:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EQ

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

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

Тип:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FilterScript

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

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

Тип:ScriptBlock
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-GE

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

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

Тип:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-GT

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

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

Тип:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера: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
Aliases:IIn
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

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

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

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

Тип:PSObject
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Is

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-IsNot

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LE

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

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

Тип:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Like

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

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

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

Тип:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LT

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

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

Тип:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Match

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

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

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

Тип:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NE

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

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

Тип:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Not

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NotContains

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

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

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

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

Тип:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NotIn

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

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

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

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

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

Тип:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NotLike

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

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

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

Тип:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-NotMatch

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

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

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

Тип:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Property

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

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

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Value

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

  • CLike
  • CNotLike
  • Like
  • NotLike

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

Тип:PSObject
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

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

PSObject

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

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

Object

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

Примечания

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

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

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

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