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 -EQGet-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