Compartir a través de


Where-Object

Selecciona los objetos de una colección basándose en 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 Where-Object cmdlet selecciona objetos que tienen valores de propiedad concretos de la colección de objetos que se le pasan. Por ejemplo, puede usar el Where-Object cmdlet 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 Where-Object comando.

  • Bloque de script. Puede utilizar 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 Normal clase priority, 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, consulte about_Comparison_Operators.

  • Instrucción de comparación. También puede escribir una instrucción de comparación, que es mucho más parecida al lenguaje natural. Las instrucciones de comparación se incorporaron 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 Where-Object comando. A menos que especifique, todos los operadores distinguen entre mayúsculas y 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 una única propiedad a Where-Object, el cmdlet trata el valor de la propiedad como una expresión booleana. Cuando el valor de length de la propiedad 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 Where-Object cmdlet .

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 Where-Object cmdlet .

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 where alias del nombre del Where-Object cmdlet 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 que tiene 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 Where-Object comando con varias condiciones.

Este comando obtiene los módulos no básicos que admiten la característica de ayuda actualizable. El comando usa el parámetro ListAvailable del Get-Module cmdlet para obtener todos los módulos del equipo. Un operador de canalización (|) envía los módulos al Where-Object cmdlet , 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 para el módulo. El -and operador lógico conecta las instrucciones de comparación.

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

  • 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 incorporó 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 incorporó 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 incorporó 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 incorporó 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 es similar a CContains, salvo que las posiciones de propiedad y valor se invierten. Por ejemplo, ambas instrucciones siguientes son True.

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

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

Este parámetro se incorporó 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 incorporó 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 incorporó 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 incorporó 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 $Matches variable automática.

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

Este parámetro se incorporó 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 incorporó 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 incorporó 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

Los operadores NotIn y CNotIn se asemejan a NotContains y CNotContains, excepto que las posiciones de propiedad y valor se invierten. Por ejemplo, las instrucciones siguientes 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 incorporó 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 $Matches variable automática.

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

Este parámetro se incorporó 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 incorporó 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 incorporó 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 incorporó 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 incorporó 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 incorporó 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 a Where-Object, el cmdlet trata inputObject 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. Escriba el nombre de tipo entre corchetes.

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

Este parámetro se incorporó 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 incorporó 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 incorporó 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 incorporó 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 incorporó 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 $Matches variable automática.

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

Este parámetro se incorporó 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 incorporó 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 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 incorporó 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 ú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 de Property y cualquier valor de Value no son la misma instancia de un objeto.

Este parámetro se incorporó 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 incorporó 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 $Matches variable automática.

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

Este parámetro se incorporó 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 incorporó 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
  • Like
  • NotLike

Este parámetro se incorporó 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, Where y ForEach se agregaron métodos para su uso con colecciones.

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