Compartir a través de


Where-Object

Selecciona objetos de una colección en función de sus valores de propiedad.

Sintaxis

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

El cmdlet Where-Object selecciona objetos que tienen valores de propiedad concretos de la colección de objetos que se le pasan. Por ejemplo, puede usar el cmdlet Where-Object para seleccionar archivos creados después de una fecha determinada, eventos con un identificador determinado o equipos que usan una versión determinada de Windows.

A partir de Windows PowerShell 3.0, hay dos maneras diferentes de construir un comando Where-Object.

  • bloque script. Puede usar un bloque de script para especificar el nombre de propiedad, un operador de comparación y un valor de propiedad. Where-Object devuelve todos los objetos para los que la instrucción de bloque de script es true.

    Por ejemplo, el comando siguiente obtiene procesos en la clase de prioridad Normal, es decir, procesa donde el valor de la propiedad PriorityClass es igual a Normal.

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

    Todos los operadores de comparación de PowerShell son válidos en el formato de bloque de script. Para obtener más información, vea about_Comparison_Operators.

  • instrucción Comparison. También puede escribir una instrucción de comparación, que es mucho más similar al lenguaje natural. Las instrucciones de comparación se introdujeron en Windows PowerShell 3.0.

    Por ejemplo, los siguientes comandos también obtienen procesos que tienen una clase de prioridad de Normal. Estos comandos son equivalentes y puede usarlos indistintamente.

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

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

    A partir de Windows PowerShell 3.0, Where-Object agrega operadores de comparación como parámetros en un comando Where-Object. A menos que se especifique, todos los operadores no distinguen mayúsculas de minúsculas. Antes de Windows PowerShell 3.0, los operadores de comparación en el lenguaje de PowerShell solo se pueden usar en bloques de scripts.

Cuando se proporciona un único Property para Where-Object, el cmdlet trata el valor de la propiedad como una expresión booleana. Cuando el valor de la propiedad Length no es cero, la expresión se evalúa como $true. Por ejemplo: ('hi', '', 'there') | Where-Object Length

El ejemplo anterior es funcionalmente equivalente a:

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

Para obtener más información sobre cómo PowerShell evalúa los valores booleanos, consulte about_Booleans.

Ejemplos

Ejemplo 1: Obtener servicios detenidos

Estos comandos obtienen una lista de todos los servicios que se detienen. La variable automática $_ representa cada objeto que se pasa al cmdlet Where-Object.

El primer comando usa el formato de bloque de script; el segundo comando usa el formato de instrucción de comparación. Los comandos filtran los servicios de la misma manera y devuelven la misma salida. Solo la sintaxis es diferente.

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

Ejemplo 2: Obtención de procesos basados en el conjunto de trabajo

Estos comandos enumeran los procesos que tienen un conjunto de trabajo superior a 250 megabytes (MB). Los comandos filtran los procesos de la misma manera y devuelven la misma salida. Solo la sintaxis es diferente.

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

Ejemplo 3: Obtención de procesos basados en el nombre del proceso

Estos comandos obtienen los procesos que tienen un valor de propiedad ProcessName que comienza con la letra p. El operador Match permite usar coincidencias de expresiones regulares.

Los comandos filtran los procesos de la misma manera y devuelven la misma salida. Solo la sintaxis es diferente.

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

Ejemplo 4: Usar el formato de instrucción de comparación

En este ejemplo se muestra cómo usar el nuevo formato de instrucción de comparación del cmdlet Where-Object.

El primer comando usa el formato de instrucción de comparación. No usa ningún alias e incluye el nombre de cada parámetro.

El segundo comando es el uso más natural del formato de comando de comparación. El comando sustituye el alias de where para el nombre del cmdlet de Where-Object y omite todos los nombres de parámetro opcionales.

Los comandos filtran los procesos de la misma manera y devuelven la misma salida. Solo la sintaxis es diferente.

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

Ejemplo 5: Obtener comandos basados en propiedades

En este ejemplo se muestra cómo escribir comandos que devuelven elementos que son true o false o tienen cualquier valor para una propiedad especificada. En cada ejemplo se muestran los formatos de bloque de script y instrucción de comparación para el comando .

Los comandos filtran su entrada de la misma manera y devuelven la misma salida. Solo la sintaxis es diferente.

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

Ejemplo 6: Uso de varias condiciones

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

En este ejemplo se muestra cómo crear un comando Where-Object con varias condiciones.

Este comando obtiene módulos no principales que admiten la característica Ayuda actualizable. El comando usa el parámetro ListAvailable del cmdlet Get-Module para obtener todos los módulos del equipo. Un operador de canalización (|) envía los módulos al cmdlet Where-Object, que obtiene módulos cuyos nombres no comienzan por Microsoft o PSy tienen un valor para la propiedad HelpInfoURI, que indica a PowerShell dónde encontrar los archivos de ayuda actualizados del módulo. El operador lógico -and conecta las instrucciones de comparación.

En el ejemplo se usa el formato de comando de bloque de script. Los operadores lógicos, como -and,-ory -not solo son válidos en bloques de script. No se pueden usar en el formato de instrucción de comparación de un comando Where-Object.

  • Para obtener más información sobre los operadores lógicos de PowerShell, consulte about_Logical_Operators.
  • Para obtener más información sobre la característica Ayuda actualizable, consulte about_Updatable_Help.

Parámetros

-CContains

Indica que este cmdlet obtiene objetos de una colección si el valor de propiedad del objeto es una coincidencia exacta para el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object ProcessName -CContains "svchost"

CContains hace referencia a una colección de valores y es true si la colección contiene un elemento que es una coincidencia exacta para el valor especificado. Si la entrada es un único objeto, PowerShell lo convierte en una colección de un objeto .

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CEQ

Indica que este cmdlet obtiene objetos si el valor de propiedad es el mismo que el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CGE

Indica que este cmdlet obtiene objetos si el valor de propiedad es mayor o igual que el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CGT

Indica que este cmdlet obtiene objetos si el valor de propiedad es mayor que el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CIn

Indica que este cmdlet obtiene objetos si el valor de propiedad incluye el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn se parece a CContains, excepto que las posiciones de propiedad y valor se invierten. Por ejemplo, las siguientes instrucciones son true.

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

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

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CLE

Indica que este cmdlet obtiene objetos si el valor de propiedad es menor o igual que el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CLike

Indica que este cmdlet obtiene objetos si el valor de propiedad coincide con un valor que incluye caracteres comodín (*). Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object ProcessName -CLike "*host"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CLT

Indica que este cmdlet obtiene objetos si el valor de propiedad es menor que el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CMatch

Indica que este cmdlet obtiene objetos si el valor de propiedad coincide con la expresión regular especificada. Esta operación distingue mayúsculas de minúsculas. Cuando la entrada es un solo objeto, el valor coincidente se guarda en la variable automática $Matches.

Por ejemplo: Get-Process | Where-Object ProcessName -CMatch "Shell"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CNE

Indica que este cmdlet obtiene objetos si el valor de propiedad es diferente del valor especificado. Esta operación distingue mayúsculas de minúsculas.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CNotContains

Indica que este cmdlet obtiene objetos si el valor de propiedad del objeto no es una coincidencia exacta para el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object ProcessName -CNotContains "svchost"

notContains y CNotContains hacen referencia a una colección de valores y son true cuando la colección no contiene ningún elemento que sea una coincidencia exacta para el valor especificado. Si la entrada es un único objeto, PowerShell lo convierte en una colección de un objeto .

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CNotIn

Indica que este cmdlet obtiene objetos si el valor de propiedad no es una coincidencia exacta para el valor especificado. Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

NotIn y operadores de CNotIn se asemejan a NotContains y CNotContains, salvo que se invierten las posiciones de propiedad y valor. Por ejemplo, las siguientes instrucciones son true.

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

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CNotLike

Indica que este cmdlet obtiene objetos si el valor de la propiedad no coincide con un valor que incluye caracteres comodín. Esta operación distingue mayúsculas de minúsculas.

Por ejemplo: Get-Process | Where-Object ProcessName -CNotLike "*host"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CNotMatch

Indica que este cmdlet obtiene objetos si el valor de propiedad no coincide con la expresión regular especificada. Esta operación distingue mayúsculas de minúsculas. Cuando la entrada es un solo objeto, el valor coincidente se guarda en la variable automática $Matches.

Por ejemplo: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Contains

Indica que este cmdlet obtiene objetos si algún elemento del valor de propiedad del objeto es una coincidencia exacta para el valor especificado.

Por ejemplo: Get-Process | Where-Object ProcessName -Contains "Svchost"

Si la entrada es un único objeto, PowerShell lo convierte en una colección de un objeto .

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IContains
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-EQ

Indica que este cmdlet obtiene objetos si el valor de propiedad es el mismo que el valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IEQ
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-FilterScript

Especifica el bloque de script que se usa para filtrar los objetos. Incluya el bloque de script entre llaves ({}).

El nombre del parámetro, FilterScript, es opcional.

Tipo:ScriptBlock
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-GE

Indica que este cmdlet obtiene objetos si el valor de propiedad es mayor o igual que el valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IGE
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-GT

Indica que este cmdlet obtiene objetos si el valor de propiedad es mayor que el valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IGT
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-In

Indica que este cmdlet obtiene objetos si el valor de propiedad coincide con cualquiera de los valores especificados. Por ejemplo:

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

Si la entrada es un único objeto, PowerShell lo convierte en una colección de un objeto .

Si el valor de propiedad de un objeto es una matriz, PowerShell usa la igualdad de referencia para determinar una coincidencia. Where-Object devuelve el objeto solo si el valor del parámetro Property y cualquier valor de Value son la misma instancia de un objeto.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IIn
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InputObject

Especifica los objetos que se van a filtrar. También puede canalizar los objetos a Where-Object.

Cuando se usa el parámetro InputObject con Where-Object, en lugar de canalizar los resultados del comando para Where-Object, el cmdlet trata el inputObject de como un solo objeto. Esto es true incluso si el valor es una colección que es el resultado de un comando, como -InputObject (Get-Process).

Dado que inputObject no puede devolver propiedades individuales de una matriz o colección de objetos, se recomienda que, si usa Where-Object para filtrar una colección de objetos para esos objetos que tienen valores específicos en propiedades definidas, se usa Where-Object en la canalización, como se muestra en los ejemplos de este tema.

Tipo:PSObject
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Is

Indica que este cmdlet obtiene objetos si el valor de propiedad es una instancia del tipo de .NET especificado. Incluya el nombre de tipo entre corchetes.

Por ejemplo, Get-Process | Where-Object StartTime -Is [DateTime]

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-IsNot

Indica que este cmdlet obtiene objetos si el valor de propiedad no es una instancia del tipo .NET especificado.

Por ejemplo, Get-Process | where StartTime -IsNot [DateTime]

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-LE

Indica que este cmdlet obtiene objetos si el valor de propiedad es menor o igual que el valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:ILE
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Like

Indica que este cmdlet obtiene objetos si el valor de propiedad coincide con un valor que incluye caracteres comodín (*).

Por ejemplo: Get-Process | Where-Object ProcessName -Like "*host"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:ILike
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-LT

Indica que este cmdlet obtiene objetos si el valor de propiedad es menor que el valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:ILT
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Match

Indica que este cmdlet obtiene objetos si el valor de propiedad coincide con la expresión regular especificada. Cuando la entrada es un solo objeto, el valor coincidente se guarda en la variable automática $Matches.

Por ejemplo: Get-Process | Where-Object ProcessName -Match "shell"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:IMatch
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NE

Indica que este cmdlet obtiene objetos si el valor de propiedad es diferente del valor especificado.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:INE
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Not

Indica que este cmdlet obtiene objetos si la propiedad no existe o tiene un valor de $null o $false.

Por ejemplo: Get-Service | Where-Object -Not "DependentServices"

Este parámetro se introdujo en Windows PowerShell 6.1.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NotContains

Indica que este cmdlet obtiene objetos si ninguno de los elementos del valor de propiedad es una coincidencia exacta para el valor especificado.

Por ejemplo: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains hace referencia a una colección de valores y es true si la colección no contiene ningún elemento que coincida exactamente con el valor especificado. Si la entrada es un único objeto, PowerShell lo convierte en una colección de un objeto .

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:INotContains
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NotIn

Indica que este cmdlet obtiene objetos si el valor de propiedad no es una coincidencia exacta para ninguno de los valores especificados.

Por ejemplo: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Si el valor de Value es un solo objeto, PowerShell lo convierte en una colección de un objeto .

Si el valor de propiedad de un objeto es una matriz, PowerShell usa la igualdad de referencia para determinar una coincidencia. Where-Object devuelve el objeto solo si el valor de Property y cualquier valor de Value no son la misma instancia de un objeto.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:INotIn
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NotLike

Indica que este cmdlet obtiene objetos si el valor de la propiedad no coincide con un valor que incluye caracteres comodín (*).

Por ejemplo: Get-Process | Where-Object ProcessName -NotLike "*host"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:INotLike
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-NotMatch

Indica que este cmdlet obtiene objetos cuando el valor de propiedad no coincide con la expresión regular especificada. Cuando la entrada es un solo objeto, el valor coincidente se guarda en la variable automática $Matches.

Por ejemplo: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:SwitchParameter
Alias:INotMatch
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Property

Especifica el nombre de una propiedad del objeto de entrada. La propiedad debe ser una propiedad de instancia, no una propiedad estática. Se trata de un parámetro posicional, por lo que el nombre, Property, es opcional.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Value

Especifica un valor de propiedad. El nombre del parámetro, Value, es opcional. Este parámetro acepta caracteres comodín cuando se usa con los siguientes parámetros de comparación:

  • CLike
  • CNotLike
  • como
  • NotLike

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo:PSObject
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

Entradas

PSObject

Puede canalizar cualquier objeto a este cmdlet.

Salidas

Object

Este cmdlet devuelve los elementos seleccionados del conjunto de objetos de entrada.

Notas

PowerShell incluye los siguientes alias para Where-Object:

  • Todas las plataformas:
    • ?
    • where

A partir de Windows PowerShell 4.0, los métodos Where y ForEach se agregaron para su uso con colecciones.

Puede obtener más información sobre estos métodos aquí about_arrays