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 , aby wybrać pliki, które zostały utworzone po określonej dacie, zdarzenia z określonym identyfikatorem lub komputery, które używają określonej wersji systemu Windows.

Począwszy od programu Windows PowerShell 3.0, istnieją dwa różne sposoby konstruowania 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 Normalrówna .

    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 znacznie bardziej podobna do języka naturalnego. Instrukcje porównania zostały wprowadzone w programie 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 programu Windows PowerShell 3.0, Where-Object dodaje operatory porównania jako parametry w poleceniu Where-Object . O ile nie określono, wszystkie operatory nie są uwzględniane wielkości liter. Przed programem 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ść właściwości Length nie jest równa zero, wyrażenie zwraca wartość $true. 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 przez program 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 filtrować usługi w taki sam sposób i zwracać 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, które mają zestaw roboczy większy niż 250 megabajtów (MB). Polecenia filtruje 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 filtruje 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 instrukcji Where-Object porównania polecenia cmdlet.

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

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

Polecenia filtruje 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 format instrukcji 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 inne niż podstawowe, które obsługują funkcję Pomoc z możliwością aktualizowania. Polecenie używa parametru Get-Module ListAvailable 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.

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 uwzględnia wielkość liter.

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

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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CIn

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

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

CIn przypomina CContains, z tą różnicą, że pozycje 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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CLike

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości pasuje do wartości zawierającej symbole wieloznaczne (*). Ta operacja uwzględnia wielkość liter.

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CLT

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia 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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CNE

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

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

NotContains i CNotContains odnoszą 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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

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

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

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

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia wielkość liter.

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 uwzględnia 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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IContains
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IEQ
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FilterScript

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

Nazwa parametru FilterScript jest opcjonalna.

Typ:ScriptBlock
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IGE
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IGT
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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-ObjectZwraca obiekt tylko wtedy, gdy wartość parametru Property i dowolna wartość Value są tym samym wystąpieniem obiektu.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IIn
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

Określa obiekty do filtrowania. Można również przekazać Where-Objectdo obiektu .

W przypadku używania parametru InputObject z parametrem Where-Objectzamiast potokowania wyników polecenia 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 zwracać pojedynczych 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 we zdefiniowanych właściwościach, należy użyć Where-Object w potoku, jak pokazano w przykładach w tym temacie.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Is

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

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:ILE
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Like

Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości pasuje do wartości zawierającej symbole wieloznaczne (*).

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

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:ILike
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:ILT
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:IMatch
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:INE
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 6.1.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 ma wartość true, 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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:INotContains
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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-ObjectZwraca obiekt tylko wtedy, gdy wartość Właściwości i dowolna wartość Value nie są tym samym wystąpieniem obiektu.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:INotIn
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:INotLike
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:INotMatch
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 programie Windows PowerShell 3.0.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Value

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

  • CLike
  • CNotLike
  • Lubić
  • NotLike

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:PSObject
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać dowolny obiekt.

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 programu Where-Object:

  • Wszystkie platformy:
    • ?
    • where

Począwszy od programu 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