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 cmdlet Where-Object wybiera obiekty, które mają określone wartości właściwości z kolekcji obiektów, które są do niego przekazywane. Możesz na przykład użyć polecenia cmdlet Where-Object, aby wybrać pliki, które zostały utworzone po określonej dacie, zdarzeniach o określonym identyfikatorze lub komputerach korzystających z określonej wersji systemu Windows.

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

  • 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 równa się 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 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-Objectpolecenie 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 oblicza 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 polecenia cmdlet Where-Object.

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 Match 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 porównania polecenia cmdlet Where-Object.

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 alias where dla nazwy polecenia cmdlet Where-Object 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ć polecenie Where-Object 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 ListAvailable polecenia cmdlet Get-Module, aby pobrać wszystkie moduły na komputerze. Operator potoku (|) wysyła moduły do polecenia cmdlet Where-Object, które pobiera moduły, których nazwy nie zaczynają się od Microsoft lub PS, i ma wartość właściwości HelpInfoURI, która informuje program PowerShell, gdzie znaleźć zaktualizowane pliki pomocy dla modułu. Operator logiczny -and łączy instrukcje porównania.

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

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 właściwości i pozycje 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 jest zgodna z wartością zawierającą 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 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 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 wyjątkiem tego, ż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. Ujęć blok skryptu w nawiasach klamrowych ({}).

Nazwa parametru FilterScriptjest 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-Object zwraca obiekt tylko wtedy, gdy wartość parametru właściwości 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żesz również przekazać obiekty potokowe do Where-Object.

W przypadku użycia parametru InputObject z Where-Objectzamiast potokowania wyników polecenia do Where-Objectpolecenie cmdlet traktuje InputObject jako pojedynczy obiekt. Jest to prawda, nawet jeśli wartość jest kolekcją, która jest wynikiem polecenia, takiego jak -InputObject (Get-Process).

Ponieważ InputObject nie może zwracać pojedynczych właściwości z tablicy lub kolekcji obiektów, zalecamy, aby w przypadku używania 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 jest zgodna z wartością zawierającą 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-Object zwraca obiekt tylko wtedy, gdy wartość właściwości i dowolna wartość wartości Value nie jest 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ści 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 Valuejest opcjonalna. Ten parametr akceptuje symbole wieloznaczne w przypadku użycia z następującymi parametrami porównania:

  • CLike
  • CNotLike
  • jak
  • Nie lubię

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

  • Wszystkie platformy:
    • ?
    • where

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

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