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 i parametr Match umożliwiają 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