Partilhar via


Where-Object

Seleciona objetos de uma coleção com base nos respetivos valores de propriedade.

Syntax

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

O Where-Object cmdlet seleciona objetos que têm valores de propriedade específicos da coleção de objetos que lhe são transmitidos. Por exemplo, pode utilizar o Where-Object cmdlet para selecionar ficheiros que foram criados após uma determinada data, eventos com um ID específico ou computadores que utilizam uma versão específica do Windows.

A partir do Windows PowerShell 3.0, existem duas formas diferentes de construir um Where-Object comando.

  • Bloco de scripts. Pode utilizar um bloco de scripts para especificar o nome da propriedade, um operador de comparação e um valor de propriedade. Where-Object devolve todos os objetos para os quais a instrução de bloco de script é verdadeira.

    Por exemplo, o seguinte comando obtém processos na Normal classe de prioridade, ou seja, processa em que o valor da propriedade PriorityClass é igual Normala .

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

    Todos os operadores de comparação do PowerShell são válidos no formato de bloco de script. Para obter mais informações, veja about_Comparison_Operators.

  • Instrução de comparação. Também pode escrever uma instrução de comparação, que é muito mais semelhante à linguagem natural. As instruções de comparação foram introduzidas no Windows PowerShell 3.0.

    Por exemplo, os seguintes comandos também obtêm processos que têm uma classe prioritária de Normal. Estes comandos são equivalentes e pode utilizá-los de forma intercambiável.

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

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

    A partir do Windows PowerShell 3.0, Where-Object adiciona operadores de comparação como parâmetros num Where-Object comando. A menos que seja especificado, todos os operadores não são sensíveis a maiúsculas e minúsculas. Antes Windows PowerShell 3.0, os operadores de comparação na linguagem do PowerShell só eram utilizáveis em blocos de script.

Quando fornece uma única Propriedade para Where-Object, o cmdlet trata o valor da propriedade como uma expressão booleana. Quando o valor do Comprimento da propriedade não é zero, a expressão é avaliada como $true. Por exemplo: ('hi', '', 'there') | Where-Object Length

O exemplo anterior é funcionalmente equivalente a:

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

Para obter mais informações sobre como o PowerShell avalia booleanos, veja about_Booleans.

Exemplos

Exemplo 1: Obter serviços parados

Estes comandos obtêm uma lista de todos os serviços que estão parados. A $_ variável automática representa cada objeto que é transmitido para o Where-Object cmdlet.

O primeiro comando utiliza o formato de bloco de script, o segundo comando utiliza o formato de instrução de comparação. Os comandos filtram os serviços da mesma forma e devolvem o mesmo resultado. Apenas a sintaxe é diferente.

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

Exemplo 2: Obter processos com base no conjunto de trabalho

Estes comandos listam processos que têm um conjunto de trabalho superior a 250 megabytes (MB). Os comandos filtram os processos da mesma forma e devolvem o mesmo resultado. Apenas a sintaxe é diferente.

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

Exemplo 3: Obter processos com base no nome do processo

Estes comandos obtêm os processos que têm um valor de propriedade ProcessName que começa com a letra p. O operador Match permite-lhe utilizar correspondências de expressão regulares.

Os comandos filtram os processos da mesma forma e devolvem o mesmo resultado. Apenas a sintaxe é diferente.

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

Exemplo 4: utilizar o formato de instrução de comparação

Este exemplo mostra como utilizar o novo formato de instrução de comparação do Where-Object cmdlet.

O primeiro comando utiliza o formato de instrução de comparação. Não utiliza quaisquer aliases e inclui o nome para cada parâmetro.

O segundo comando é a utilização mais natural do formato de comando de comparação. O comando substitui o alias where pelo nome do Where-Object cmdlet e omite todos os nomes de parâmetros opcionais.

Os comandos filtram os processos da mesma forma e devolvem o mesmo resultado. Apenas a sintaxe é diferente.

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

Exemplo 5: Obter comandos baseados em propriedades

Este exemplo mostra como escrever comandos que devolvem itens verdadeiros ou falsos ou que têm qualquer valor para uma propriedade especificada. Cada exemplo mostra os formatos de bloco de script e de instrução de comparação para o comando.

Os comandos filtram a respetiva entrada da mesma forma e devolvem o mesmo resultado. Apenas a sintaxe é 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 }

Exemplo 6: Utilizar várias condições

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

Este exemplo mostra como criar um Where-Object comando com múltiplas condições.

Este comando obtém módulos não essenciais que suportam a funcionalidade Ajuda Atualizável. O comando utiliza o parâmetro ListAvailable do Get-Module cmdlet para obter todos os módulos no computador. Um operador de pipeline (|) envia os módulos para o Where-Object cmdlet, que obtém módulos cujos nomes não começam por Microsoft ou PS, e têm um valor para a propriedade HelpInfoURI , que indica ao PowerShell onde encontrar ficheiros de ajuda atualizados para o módulo. O -and operador lógico liga as instruções de comparação.

O exemplo utiliza o formato de comando de bloco de script. Os operadores lógicos, como -and,-or e -not só são válidos em blocos de script. Não pode utilizá-los no formato de instrução de comparação de um Where-Object comando.

Parâmetros

-CContains

Indica que este cmdlet obtém objetos de uma coleção se o valor de propriedade do objeto for uma correspondência exata para o valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

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

CContains refere-se a uma coleção de valores e é verdadeira se a coleção contiver um item que seja uma correspondência exata para o valor especificado. Se a entrada for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CEQ

Indica que este cmdlet obtém objetos se o valor da propriedade for igual ao valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGE

Indica que este cmdlet obtém objetos se o valor da propriedade for maior ou igual ao valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CGT

Indica que este cmdlet obtém objetos se o valor da propriedade for superior ao valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CIn

Indica que este cmdlet obtém objetos se o valor da propriedade incluir o valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

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

CIn assemelha-se a CContains, exceto que as posições de propriedade e valor são invertidas. Por exemplo, as seguintes instruções são ambas verdadeiras.

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

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLE

Indica que este cmdlet obtém objetos se o valor da propriedade for menor ou igual ao valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLike

Indica que este cmdlet obtém objetos se o valor da propriedade corresponder a um valor que inclui carateres universais (*). Esta operação é sensível a maiúsculas e minúsculas.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CLT

Indica que este cmdlet obtém objetos se o valor da propriedade for inferior ao valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CMatch

Indica que este cmdlet obtém objetos se o valor da propriedade corresponder à expressão regular especificada. Esta operação é sensível a maiúsculas e minúsculas. Quando a entrada é um único objeto, o valor correspondente é guardado na $Matches variável automática.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNE

Indica que este cmdlet obtém objetos se o valor da propriedade for diferente do valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotContains

Indica que este cmdlet obtém objetos se o valor da propriedade do objeto não for uma correspondência exata para o valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

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

NotContains e CNotContains referem-se a uma coleção de valores e são verdadeiros quando a coleção não contém itens que correspondem exatamente ao valor especificado. Se a entrada for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotIn

Indica que este cmdlet obtém objetos se o valor da propriedade não for uma correspondência exata para o valor especificado. Esta operação é sensível a maiúsculas e minúsculas.

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

Os operadores NotIn e CNotIn assemelham-se a NotContains e CNotContains, exceto que as posições de propriedade e valor são invertidas. Por exemplo, as seguintes instruções são verdadeiras.

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotLike

Indica que este cmdlet obtém objetos se o valor da propriedade não corresponder a um valor que inclua carateres universais. Esta operação é sensível a maiúsculas e minúsculas.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CNotMatch

Indica que este cmdlet obtém objetos se o valor da propriedade não corresponder à expressão regular especificada. Esta operação é sensível a maiúsculas e minúsculas. Quando a entrada é um único objeto, o valor correspondente é guardado na $Matches variável automática.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Contains

Indica que este cmdlet obtém objetos se qualquer item no valor de propriedade do objeto for uma correspondência exata para o valor especificado.

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

Se a entrada for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-EQ

Indica que este cmdlet obtém objetos se o valor da propriedade for igual ao valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterScript

Especifica o bloco de script que é utilizado para filtrar os objetos. Coloque o bloco de script entre chavetas ({}).

O nome do parâmetro FilterScript é opcional.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GE

Indica que este cmdlet obtém objetos se o valor da propriedade for maior ou igual ao valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-GT

Indica que este cmdlet obtém objetos se o valor da propriedade for maior do que o valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-In

Indica que este cmdlet obtém objetos se o valor da propriedade corresponder a qualquer um dos valores especificados. Por exemplo:

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

Se a entrada for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Se o valor da propriedade de um objeto for uma matriz, o PowerShell utiliza a igualdade de referência para determinar uma correspondência. Where-Object devolve o objeto apenas se o valor do parâmetro Propriedade e qualquer valor de Valor forem a mesma instância de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica os objetos a filtrar. Também pode encaminhar os objetos para Where-Object.

Quando utiliza o parâmetro InputObject com Where-Object, em vez de encaminhar os resultados do comando para Where-Object, o cmdlet trata o InputObject como um único objeto. Isto é verdade mesmo que o valor seja uma coleção que é o resultado de um comando, como -InputObject (Get-Process).

Uma vez que InputObject não pode devolver propriedades individuais de uma matriz ou coleção de objetos, recomendamos que, se utilizar Where-Object para filtrar uma coleção de objetos para os objetos que têm valores específicos em propriedades definidas, utilize Where-Object no pipeline, conforme mostrado nos exemplos deste tópico.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Is

Indica que este cmdlet obtém objetos se o valor da propriedade for uma instância do tipo .NET especificado. Coloque o nome do tipo entre parênteses retos.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-IsNot

Indica que este cmdlet obtém objetos se o valor da propriedade não for uma instância do tipo .NET especificado.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LE

Indica que este cmdlet obtém objetos se o valor da propriedade for menor ou igual ao valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Like

Indica que este cmdlet obtém objetos se o valor da propriedade corresponder a um valor que inclui carateres universais (*).

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LT

Indica que este cmdlet obtém objetos se o valor da propriedade for menor do que o valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Match

Indica que este cmdlet obtém objetos se o valor da propriedade corresponder à expressão regular especificada. Quando a entrada é um único objeto, o valor correspondente é guardado na $Matches variável automática.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NE

Indica que este cmdlet obtém objetos se o valor da propriedade for diferente do valor especificado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Not

Indica que este cmdlet obtém objetos se a propriedade não existir ou tiver um valor de $null ou $false.

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

Este parâmetro foi introduzido no Windows PowerShell 6.1.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotContains

Indica que este cmdlet obtém objetos se nenhum dos itens no valor da propriedade for uma correspondência exata para o valor especificado.

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

NotContains refere-se a uma coleção de valores e é verdadeiro se a coleção não contiver itens que correspondam exatamente ao valor especificado. Se a entrada for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotIn

Indica que este cmdlet obtém objetos se o valor da propriedade não for uma correspondência exata para qualquer um dos valores especificados.

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

Se o valor de Valor for um único objeto, o PowerShell converte-o numa coleção de um objeto.

Se o valor da propriedade de um objeto for uma matriz, o PowerShell utiliza a igualdade de referência para determinar uma correspondência. Where-Object devolve o objeto apenas se o valor de Propriedade e qualquer valor de Valor não forem a mesma instância de um objeto.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotLike

Indica que este cmdlet obtém objetos se o valor da propriedade não corresponder a um valor que inclua carateres universais (*).

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

Indica que este cmdlet obtém objetos quando o valor da propriedade não corresponde à expressão regular especificada. Quando a entrada é um único objeto, o valor correspondente é guardado na $Matches variável automática.

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

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Property

Especifica o nome de uma propriedade do objeto de entrada. A propriedade tem de ser uma propriedade de instância, não uma propriedade estática. Este é um parâmetro posicional, pelo que o nome, Propriedade, é opcional.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Value

Especifica um valor de propriedade. O nome do parâmetro Value é opcional. Este parâmetro aceita carateres universais quando utilizado com os seguintes parâmetros de comparação:

  • CLike
  • CNotLike
  • Como
  • Não Como

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Entradas

PSObject

Pode encaminhar qualquer objeto para este cmdlet.

Saídas

Object

Este cmdlet devolve os itens selecionados do conjunto de objetos de entrada.

Notas

O PowerShell inclui os seguintes aliases para Where-Object:

  • Todas as Plataformas:
    • ?
    • where

A partir da Windows PowerShell 4.0 e WhereForEach foram adicionados métodos para utilização com coleções.

Pode ler mais sobre estes métodos aqui about_arrays