Partager via


Where-Object

Sélectionne les objets d’une collection en fonction de leurs valeurs de propriété.

Syntaxe

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

Description

L’applet de commande Where-Object sélectionne les objets qui ont des valeurs de propriété particulières dans la collection d’objets qui lui sont transmis. Par exemple, vous pouvez utiliser l’applet de commande Where-Object pour sélectionner des fichiers créés après une certaine date, des événements avec un ID particulier ou des ordinateurs qui utilisent une version particulière de Windows.

À compter de Windows PowerShell 3.0, il existe deux façons différentes de construire une commande Where-Object.

  • de bloc de script . Vous pouvez utiliser un bloc de script pour spécifier le nom de la propriété, un opérateur de comparaison et une valeur de propriété. Where-Object retourne tous les objets pour lesquels l’instruction de bloc de script est vraie.

    Par exemple, la commande suivante obtient des processus dans la classe de priorité Normal, c’est-à-dire les processus où la valeur de la propriété PriorityClass est égale à Normal.

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

    Tous les opérateurs de comparaison PowerShell sont valides au format de bloc de script. Pour plus d’informations, consultez about_Comparison_Operators.

  • 'instruction Comparison. Vous pouvez également écrire une instruction de comparaison, qui est beaucoup plus semblable au langage naturel. Les instructions de comparaison ont été introduites dans Windows PowerShell 3.0.

    Par exemple, les commandes suivantes obtiennent également des processus qui ont une classe de priorité de Normal. Ces commandes sont équivalentes et vous pouvez les utiliser de manière interchangeable.

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

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

    À compter de Windows PowerShell 3.0, Where-Object ajoute des opérateurs de comparaison en tant que paramètres dans une commande Where-Object. Sauf indication contraire, tous les opérateurs ne respectent pas la casse. Avant Windows PowerShell 3.0, les opérateurs de comparaison dans le langage PowerShell n’étaient utilisables que dans les blocs de script.

Lorsque vous fournissez une seule Property à Where-Object, l’applet de commande traite la valeur de la propriété comme une expression booléenne. Lorsque la valeur de l'Length de la propriété n’est pas égale à zéro, l’expression prend la valeur $true. Par exemple : ('hi', '', 'there') | Where-Object Length

L’exemple précédent est fonctionnellement équivalent à :

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

Pour plus d’informations sur la façon dont PowerShell évalue les valeurs booléennes, consultez about_Booleans.

Exemples

Exemple 1 : Obtenir les services arrêtés

Ces commandes obtiennent la liste de tous les services arrêtés. La variable automatique $_ représente chaque objet passé à l’applet de commande Where-Object.

La première commande utilise le format de bloc de script, la deuxième commande utilise le format d’instruction de comparaison. Les commandes filtrent les services de la même façon et retournent la même sortie. Seule la syntaxe est différente.

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

Exemple 2 : Obtenir des processus en fonction du jeu de travail

Ces commandes répertorient les processus dont le jeu de travail est supérieur à 250 mégaoctets (Mo). Les commandes filtrent les processus de la même façon et retournent la même sortie. Seule la syntaxe est différente.

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

Exemple 3 : Obtenir des processus en fonction du nom du processus

Ces commandes obtiennent les processus qui ont une valeur de propriété ProcessName qui commence par la lettre p. L’opérateur Match vous permet d’utiliser des correspondances d’expression régulière.

Les commandes filtrent les processus de la même façon et retournent la même sortie. Seule la syntaxe est différente.

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

Exemple 4 : Utiliser le format d’instruction de comparaison

Cet exemple montre comment utiliser le nouveau format d’instruction de comparaison de l’applet de commande Where-Object.

La première commande utilise le format d’instruction de comparaison. Il n’utilise pas d’alias et inclut le nom de chaque paramètre.

La deuxième commande est l’utilisation la plus naturelle du format de commande de comparaison. La commande remplace l’alias where pour le nom de l’applet de commande Where-Object et omet tous les noms de paramètres facultatifs.

Les commandes filtrent les processus de la même façon et retournent la même sortie. Seule la syntaxe est différente.

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

Exemple 5 : Obtenir des commandes en fonction des propriétés

Cet exemple montre comment écrire des commandes qui retournent des éléments qui sont vrais ou faux ou qui ont une valeur quelconque pour une propriété spécifiée. Chaque exemple montre les formats de bloc de script et d’instruction de comparaison pour la commande.

Les commandes filtrent leur entrée de la même façon et retournent la même sortie. Seule la syntaxe est différente.

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

Exemple 6 : Utiliser plusieurs conditions

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

Cet exemple montre comment créer une commande Where-Object avec plusieurs conditions.

Cette commande obtient des modules non essentiels qui prennent en charge la fonctionnalité d’aide pouvant être mise à jour. La commande utilise le paramètre ListAvailable de l’applet de commande Get-Module pour obtenir tous les modules sur l’ordinateur. Un opérateur de pipeline (|) envoie les modules à l’applet de commande Where-Object, qui obtient les modules dont les noms ne commencent pas par Microsoft ou PS, et ont une valeur pour la propriété HelpInfoURI, ce qui indique à PowerShell où rechercher les fichiers d’aide mis à jour pour le module. L’opérateur logique -and connecte les instructions de comparaison.

L’exemple utilise le format de commande de bloc de script. Les opérateurs logiques, tels que -and,-oret -not sont valides uniquement dans les blocs de script. Vous ne pouvez pas les utiliser dans le format d’instruction de comparaison d’une commande Where-Object.

  • Pour plus d’informations sur les opérateurs logiques PowerShell, consultez about_Logical_Operators.
  • Pour plus d’informations sur la fonctionnalité d’aide pouvant être mise à jour, consultez about_Updatable_Help.

Paramètres

-CContains

Indique que cette applet de commande obtient des objets d’une collection si la valeur de propriété de l’objet est une correspondance exacte pour la valeur spécifiée. Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object ProcessName -CContains "svchost"

CContains fait référence à une collection de valeurs et est vraie si la collection contient un élément correspondant exactement à la valeur spécifiée. Si l’entrée est un seul objet, PowerShell le convertit en collection d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CEQ

Indique que cette applet de commande obtient des objets si la valeur de propriété est identique à la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CGE

Indique que cette applet de commande obtient des objets si la valeur de propriété est supérieure ou égale à la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CGT

Indique que cette applet de commande obtient des objets si la valeur de propriété est supérieure à la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CIn

Indique que cette applet de commande obtient des objets si la valeur de propriété inclut la valeur spécifiée. Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn ressemble CContains, sauf que les positions de propriété et de valeur sont inversées. Par exemple, les instructions suivantes sont toutes deux vraies.

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

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

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CLE

Indique que cette applet de commande obtient des objets si la valeur de propriété est inférieure ou égale à la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CLike

Indique que cette applet de commande obtient des objets si la valeur de propriété correspond à une valeur qui inclut des caractères génériques (*). Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object ProcessName -CLike "*host"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CLT

Indique que cette applet de commande obtient des objets si la valeur de propriété est inférieure à la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CMatch

Indique que cette applet de commande obtient des objets si la valeur de propriété correspond à l’expression régulière spécifiée. Cette opération respecte la casse. Lorsque l’entrée est un objet unique, la valeur correspondante est enregistrée dans la variable automatique $Matches.

Par exemple : Get-Process | Where-Object ProcessName -CMatch "Shell"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CNE

Indique que cette applet de commande obtient des objets si la valeur de propriété est différente de la valeur spécifiée. Cette opération respecte la casse.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CNotContains

Indique que cette applet de commande obtient des objets si la valeur de propriété de l’objet n’est pas une correspondance exacte pour la valeur spécifiée. Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object ProcessName -CNotContains "svchost"

NotContains et CNotContains font référence à une collection de valeurs et sont vraies lorsque la collection ne contient aucun élément correspondant exactement à la valeur spécifiée. Si l’entrée est un seul objet, PowerShell le convertit en collection d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CNotIn

Indique que cette applet de commande obtient des objets si la valeur de propriété n’est pas une correspondance exacte pour la valeur spécifiée. Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Les opérateurs NotIn et CNotIn ressemblent NotContains et CNotContains, sauf que les positions de propriété et de valeur sont inversées. Par exemple, les instructions suivantes sont vraies.

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

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

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CNotLike

Indique que cette applet de commande obtient des objets si la valeur de propriété ne correspond pas à une valeur qui inclut des caractères génériques. Cette opération respecte la casse.

Par exemple : Get-Process | Where-Object ProcessName -CNotLike "*host"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CNotMatch

Indique que cette applet de commande obtient des objets si la valeur de propriété ne correspond pas à l’expression régulière spécifiée. Cette opération respecte la casse. Lorsque l’entrée est un objet unique, la valeur correspondante est enregistrée dans la variable automatique $Matches.

Par exemple : Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Contains

Indique que cette applet de commande obtient des objets si un élément de la valeur de propriété de l’objet correspond exactement à la valeur spécifiée.

Par exemple : Get-Process | Where-Object ProcessName -Contains "Svchost"

Si l’entrée est un seul objet, PowerShell le convertit en collection d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IContains
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EQ

Indique que cette applet de commande obtient des objets si la valeur de propriété est identique à la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IEQ
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FilterScript

Spécifie le bloc de script utilisé pour filtrer les objets. Placez le bloc de script dans les accolades ({}).

Le nom du paramètre, FilterScript, est facultatif.

Type:ScriptBlock
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-GE

Indique que cette applet de commande obtient des objets si la valeur de propriété est supérieure ou égale à la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IGE
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-GT

Indique que cette applet de commande obtient des objets si la valeur de propriété est supérieure à la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IGT
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-In

Indique que cette applet de commande obtient des objets si la valeur de propriété correspond à l’une des valeurs spécifiées. Par exemple:

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

Si l’entrée est un seul objet, PowerShell le convertit en collection d’un objet.

Si la valeur de propriété d’un objet est un tableau, PowerShell utilise l’égalité de référence pour déterminer une correspondance. Where-Object retourne l’objet uniquement si la valeur du paramètre Property et toute valeur de Value sont la même instance d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IIn
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie les objets à filtrer. Vous pouvez également diriger les objets vers Where-Object.

Lorsque vous utilisez le paramètre InputObject avec Where-Object, au lieu de passer à Where-Object, l’applet de commande traite les InputObject en tant qu’objet unique. Cela est vrai même si la valeur est une collection qui est le résultat d’une commande, telle que -InputObject (Get-Process).

Étant donné que InputObject ne peut pas retourner des propriétés individuelles à partir d’un tableau ou d’une collection d’objets, nous vous recommandons que, si vous utilisez Where-Object pour filtrer une collection d’objets pour ces objets qui ont des valeurs spécifiques dans les propriétés définies, vous utilisez Where-Object dans le pipeline, comme illustré dans les exemples de cette rubrique.

Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Is

Indique que cette applet de commande obtient des objets si la valeur de propriété est une instance du type .NET spécifié. Placez le nom du type entre crochets.

Par exemple, Get-Process | Where-Object StartTime -Is [DateTime]

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-IsNot

Indique que cette applet de commande obtient des objets si la valeur de propriété n’est pas une instance du type .NET spécifié.

Par exemple, Get-Process | where StartTime -IsNot [DateTime]

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-LE

Indique que cette applet de commande obtient des objets si la valeur de propriété est inférieure ou égale à la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:ILE
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Like

Indique que cette applet de commande obtient des objets si la valeur de propriété correspond à une valeur qui inclut des caractères génériques (*).

Par exemple : Get-Process | Where-Object ProcessName -Like "*host"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:ILike
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-LT

Indique que cette applet de commande obtient des objets si la valeur de propriété est inférieure à la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:ILT
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Match

Indique que cette applet de commande obtient des objets si la valeur de propriété correspond à l’expression régulière spécifiée. Lorsque l’entrée est un objet unique, la valeur correspondante est enregistrée dans la variable automatique $Matches.

Par exemple : Get-Process | Where-Object ProcessName -Match "shell"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:IMatch
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NE

Indique que cette applet de commande obtient des objets si la valeur de propriété est différente de la valeur spécifiée.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:INE
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Not

Indique que cette applet de commande obtient des objets si la propriété n’existe pas ou a une valeur de $null ou de $false.

Par exemple : Get-Service | Where-Object -Not "DependentServices"

Ce paramètre a été introduit dans Windows PowerShell 6.1.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NotContains

Indique que cette applet de commande obtient des objets si aucun des éléments de la valeur de propriété n’est une correspondance exacte pour la valeur spécifiée.

Par exemple : Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains fait référence à une collection de valeurs et est true si la collection ne contient aucun élément qui correspond exactement à la valeur spécifiée. Si l’entrée est un seul objet, PowerShell le convertit en collection d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:INotContains
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NotIn

Indique que cette applet de commande obtient des objets si la valeur de propriété n’est pas une correspondance exacte pour l’une des valeurs spécifiées.

Par exemple : Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Si la valeur de Value est un objet unique, PowerShell le convertit en une collection d’un objet.

Si la valeur de propriété d’un objet est un tableau, PowerShell utilise l’égalité de référence pour déterminer une correspondance. Where-Object retourne l’objet uniquement si la valeur de Property et toute valeur de Valeur ne sont pas la même instance d’un objet.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:INotIn
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NotLike

Indique que cette applet de commande obtient des objets si la valeur de propriété ne correspond pas à une valeur qui inclut des caractères génériques (*).

Par exemple : Get-Process | Where-Object ProcessName -NotLike "*host"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:INotLike
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NotMatch

Indique que cette applet de commande obtient des objets lorsque la valeur de propriété ne correspond pas à l’expression régulière spécifiée. Lorsque l’entrée est un objet unique, la valeur correspondante est enregistrée dans la variable automatique $Matches.

Par exemple : Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Alias:INotMatch
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Property

Spécifie le nom d’une propriété de l’objet d’entrée. La propriété doit être une propriété d’instance, et non une propriété statique. Il s’agit d’un paramètre positionnel, de sorte que le nom, Property, est facultatif.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Value

Spécifie une valeur de propriété. Le nom du paramètre, Valeur, est facultatif. Ce paramètre accepte les caractères génériques lorsqu’il est utilisé avec les paramètres de comparaison suivants :

  • CLike
  • CNotLike
  • Like
  • NotLike

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:PSObject
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

Entrées

PSObject

Vous pouvez diriger n’importe quel objet vers cette applet de commande.

Sorties

Object

Cette applet de commande retourne les éléments sélectionnés du jeu d’objets d’entrée.

Notes

PowerShell inclut les alias suivants pour Where-Object:

  • Toutes les plateformes :
    • ?
    • where

À compter de Windows PowerShell 4.0, Where et ForEach méthodes ont été ajoutées pour une utilisation avec des collections.

Vous pouvez en savoir plus sur ces méthodes ici about_arrays