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 |
Входные данные
Вы можете передать любой объект в этот командлет.
Выходные данные
Этот командлет возвращает выбранные элементы из входного набора объектов.
Примечания
PowerShell включает следующие псевдонимы для Where-Object
:
- Все платформы:
?
where
Начиная с Windows PowerShell 4.0, Where
и ForEach
были добавлены методы для использования с коллекциями.
Дополнительные сведения об этих методах см. здесь about_arrays
Связанные ссылки
PowerShell