Udostępnij za pośrednictwem


Where-Object

Wybiera obiekty z kolekcji na podstawie ich wartości właściwości.

Składnia

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

Opis

Polecenie Where-Object cmdlet wybiera obiekty, które mają określone wartości właściwości z kolekcji obiektów, które są do niego przekazywane. Można na przykład użyć Where-Object polecenia cmdlet do wybierania plików utworzonych po określonej dacie, zdarzeniach o określonym identyfikatorze lub komputerach korzystających z określonej wersji systemu Windows.

Począwszy od Windows PowerShell 3.0, istnieją dwa różne sposoby tworzenia Where-Object polecenia.

  • Blok skryptu. Blok skryptu umożliwia określenie nazwy właściwości, operatora porównania i wartości właściwości. Where-Object zwraca wszystkie obiekty, dla których instrukcja bloku skryptu ma wartość true.

    Na przykład następujące polecenie pobiera procesy w klasie priorytetu Normal , czyli procesy, w których wartość właściwości PriorityClass jest równa Normal.

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

    Wszystkie operatory porównania programu PowerShell są prawidłowe w formacie bloku skryptu. Aby uzyskać więcej informacji, zobacz about_Comparison_Operators.

  • Instrukcja porównania. Możesz również napisać instrukcję porównania, która jest o wiele bardziej podobna do języka naturalnego. Instrukcje porównania zostały wprowadzone w Windows PowerShell 3.0.

    Na przykład następujące polecenia pobierają również procesy, które mają klasę priorytetu .Normal Te polecenia są równoważne i można ich używać zamiennie.

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

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

    Począwszy od Windows PowerShell 3.0, Where-Object dodaje operatory porównania jako parametry w poleceniuWhere-Object. Chyba że określono, wszystkie operatory są bez uwzględniania wielkości liter. Przed Windows PowerShell 3.0 operatory porównania w języku programu PowerShell były używane tylko w blokach skryptów.

Po podaniu pojedynczej właściwości do Where-Objectpolecenia cmdlet traktuje wartość właściwości jako wyrażenie logiczne. Jeśli wartość długości właściwości nie jest równa zero, wyrażenie daje $truewartość . Na przykład: ('hi', '', 'there') | Where-Object Length

Poprzedni przykład jest funkcjonalnie równoważny:

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

Aby uzyskać więcej informacji na temat sposobu oceniania wartości logicznych programu PowerShell, zobacz about_Booleans.

Przykłady

Przykład 1. Pobieranie zatrzymanych usług

Te polecenia pobierają listę wszystkich zatrzymanych usług. Zmienna automatyczna $_ reprezentuje każdy obiekt przekazany do Where-Object polecenia cmdlet.

Pierwsze polecenie używa formatu bloku skryptu, drugie polecenie używa formatu instrukcji porównania. Polecenia filtrują usługi w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.

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

Przykład 2. Pobieranie procesów na podstawie zestawu roboczego

Te polecenia zawierają listę procesów z zestawem roboczym większym niż 250 megabajtów (MB). Polecenia filtrują procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.

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

Przykład 3. Pobieranie procesów na podstawie nazwy procesu

Te polecenia pobierają procesy, które mają wartość właściwości ProcessName rozpoczynającą się literą p. Operator Dopasowanie umożliwia używanie dopasowań wyrażeń regularnych.

Polecenia filtrują procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.

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

Przykład 4. Używanie formatu instrukcji porównania

W tym przykładzie pokazano, jak używać nowego formatu Where-Object instrukcji porównania polecenia cmdlet.

Pierwsze polecenie używa formatu instrukcji porównania. Nie używa żadnych aliasów i zawiera nazwę dla każdego parametru.

Drugie polecenie jest bardziej naturalnym użyciem formatu polecenia porównania. Polecenie zastępuje where alias nazwy Where-Object polecenia cmdlet i pomija wszystkie opcjonalne nazwy parametrów.

Polecenia filtrują procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.

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

Przykład 5. Pobieranie poleceń na podstawie właściwości

W tym przykładzie pokazano, jak napisać polecenia zwracające elementy, które są prawdziwe lub fałszywe lub mają dowolną wartość dla określonej właściwości. W każdym przykładzie przedstawiono zarówno formaty bloku skryptu, jak i instrukcji porównania dla polecenia.

Polecenia filtrują dane wejściowe w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.

# 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 }

Przykład 6. Używanie wielu warunków

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

W tym przykładzie pokazano, jak utworzyć Where-Object polecenie z wieloma warunkami.

To polecenie pobiera moduły nierdzeniowe, które obsługują funkcję Pomocy możliwej do zaktualizowania. Polecenie używa parametru Get-ModuleListAvailable polecenia cmdlet, aby pobrać wszystkie moduły na komputerze. Operator potoku (|) wysyła moduły do Where-Object polecenia cmdlet, które pobiera moduły, których nazwy nie zaczynają się Microsoft od lub PS, i ma wartość właściwości HelpInfoURI , która informuje program PowerShell, gdzie znaleźć zaktualizowane pliki pomocy dla modułu. Operator -and logiczny łączy instrukcje porównania.

W przykładzie użyto formatu polecenia bloku skryptu. Operatory logiczne, takie jak -and,-or i -not są prawidłowe tylko w blokach skryptów. Nie można ich używać w formacie instrukcji Where-Object porównania polecenia.

  • Aby uzyskać więcej informacji na temat operatorów logicznych programu PowerShell, zobacz about_Logical_Operators.
  • Aby uzyskać więcej informacji na temat funkcji Pomocy możliwej do zaktualizowania, zobacz about_Updatable_Help.

Parametry

-CContains

Wskazuje, że to polecenie cmdlet pobiera obiekty z kolekcji, jeśli wartość właściwości obiektu jest dokładnie zgodna z określoną wartością. Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object ProcessName -CContains "svchost"

Obiekt CContains odnosi się do kolekcji wartości i ma wartość true, jeśli kolekcja zawiera element, który jest dokładnie zgodny z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CEQ

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest taka sama jak określona wartość. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CGE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa lub równa określonej wartości. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CGT

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa niż określona wartość. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CIn

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości zawiera określoną wartość. Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn przypomina CContains, z wyjątkiem tego, że pozycja właściwości i wartości są odwrócone. Na przykład następujące instrukcje są prawdziwe.

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

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

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CLE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż lub równa określonej wartości. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CLike

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z wartością zawierającą znaki wieloznaczne (*). Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object ProcessName -CLike "*host"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CLT

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż określona wartość. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CMatch

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z określonym wyrażeniem regularnym. Ta operacja jest rozróżniana wielkość liter. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches .

Na przykład: Get-Process | Where-Object ProcessName -CMatch "Shell"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CNE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest inna niż określona wartość. Ta operacja jest rozróżniana wielkość liter.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CNotContains

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości obiektu nie jest dokładnie zgodna z określoną wartością. Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object ProcessName -CNotContains "svchost"

Wartości NotContains i CNotContains odwołują się do kolekcji wartości i są prawdziwe, gdy kolekcja nie zawiera żadnych elementów, które są dokładnie zgodne z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CNotIn

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest dokładnie zgodna z określoną wartością. Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Operatory NotIn i CNotIn przypominają operatory NotContains i CNotContains, z wyjątkiem tego, że właściwości i pozycje wartości są odwrócone. Na przykład następujące instrukcje są prawdziwe.

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

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

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

-CNotLike

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z wartością zawierającą symbole wieloznaczne. Ta operacja jest rozróżniana wielkość liter.

Na przykład: Get-Process | Where-Object ProcessName -CNotLike "*host"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-CNotMatch

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z określonym wyrażeniem regularnym. Ta operacja jest rozróżniana wielkość liter. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches .

Na przykład: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Contains

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli jakikolwiek element w wartości właściwości obiektu jest dokładnie zgodny z określoną wartością.

Na przykład: Get-Process | Where-Object ProcessName -Contains "Svchost"

Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-EQ

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest taka sama jak określona wartość.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-FilterScript

Określa blok skryptu używany do filtrowania obiektów. Załącz blok skryptu w nawiasach klamrowych ({}).

Nazwa parametru FilterScript jest opcjonalna.

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

-GE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa lub równa określonej wartości.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-GT

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa niż określona wartość.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-In

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z dowolną z określonych wartości. Na przykład:

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

Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Jeśli wartość właściwości obiektu jest tablicą, program PowerShell używa równości odwołań w celu określenia dopasowania. Where-Object Zwraca obiekt tylko wtedy, gdy wartość parametru Property i dowolna wartość Wartości są tym samym wystąpieniem obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-InputObject

Określa obiekty do filtrowania. Można również potokować obiekty do Where-Objectobiektu .

Gdy używasz parametru InputObject z parametrem Where-Object, zamiast potokowania wyników poleceń do Where-Objectpolecenia , polecenie cmdlet traktuje obiekt InputObject jako pojedynczy obiekt. Jest to prawda, nawet jeśli wartość jest kolekcją, która jest wynikiem polecenia, takiego jak -InputObject (Get-Process).

Ponieważ obiekt InputObject nie może zwrócić poszczególnych właściwości z tablicy lub kolekcji obiektów, zalecamy, aby w przypadku Where-Object filtrowania kolekcji obiektów dla tych obiektów, które mają określone wartości w zdefiniowanych właściwościach, należy użyć Where-Object w potoku, jak pokazano w przykładach w tym temacie.

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

-Is

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest wystąpieniem określonego typu .NET. Dołącz nazwę typu w nawiasach kwadratowych.

Na przykład Get-Process | Where-Object StartTime -Is [DateTime]

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-IsNot

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest wystąpieniem określonego typu .NET.

Na przykład Get-Process | where StartTime -IsNot [DateTime]

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-LE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza lub równa określonej wartości.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Like

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z wartością zawierającą znaki wieloznaczne (*).

Na przykład: Get-Process | Where-Object ProcessName -Like "*host"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-LT

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż określona wartość.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Match

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z określonym wyrażeniem regularnym. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches .

Na przykład: Get-Process | Where-Object ProcessName -Match "shell"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-NE

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest inna niż określona wartość.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Not

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli właściwość nie istnieje lub ma wartość $null lub $false.

Na przykład: Get-Service | Where-Object -Not "DependentServices"

Ten parametr został wprowadzony w Windows PowerShell 6.1.

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

-NotContains

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli żadna z elementów w wartości właściwości nie jest dokładnie zgodna z określoną wartością.

Na przykład: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains odnosi się do kolekcji wartości i jest prawdziwe, jeśli kolekcja nie zawiera żadnych elementów, które są dokładnie zgodne z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-NotIn

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest dokładnie zgodna z żadnym z określonych wartości.

Na przykład: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Jeśli wartość Value jest pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.

Jeśli wartość właściwości obiektu jest tablicą, program PowerShell używa równości odwołań w celu określenia dopasowania. Where-Object Zwraca obiekt tylko wtedy, gdy wartość właściwości i dowolna wartość Wartości nie są tym samym wystąpieniem obiektu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-NotLike

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z wartością zawierającą symbole wieloznaczne (*).

Na przykład: Get-Process | Where-Object ProcessName -NotLike "*host"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-NotMatch

Wskazuje, że to polecenie cmdlet pobiera obiekty, gdy wartość właściwości nie jest zgodna z określonym wyrażeniem regularnym. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches .

Na przykład: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Property

Określa nazwę właściwości obiektu wejściowego. Właściwość musi być właściwością wystąpienia, a nie właściwością statyczną. Jest to parametr pozycyjny, więc nazwa , Właściwość, jest opcjonalna.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Value

Określa wartość właściwości. Nazwa parametru Value jest opcjonalna. Ten parametr akceptuje symbole wieloznaczne, gdy są używane z następującymi parametrami porównania:

  • CLike
  • CNotLike
  • Jak
  • NotLike

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

Dane wejściowe

PSObject

Możesz przekazać dowolny obiekt do tego polecenia cmdlet.

Dane wyjściowe

Object

To polecenie cmdlet zwraca wybrane elementy z zestawu obiektów wejściowych.

Uwagi

Program PowerShell zawiera następujące aliasy dla Where-Objectprogramu :

  • Wszystkie platformy:
    • ?
    • where

Począwszy od Windows PowerShell 4.0, Where a ForEach metody zostały dodane do użycia z kolekcjami.

Więcej informacji na temat tych metod można znaleźć tutaj about_arrays