Partilhar via


Where-Object

Seleciona objetos de uma coleção com base em seus valores de propriedade.

Sintaxe

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 são passados para ele. Por exemplo, você pode usar o Where-Object cmdlet para selecionar arquivos que foram criados após uma determinada data, eventos com uma ID específica ou computadores que usam uma versão específica do Windows.

A partir do Windows PowerShell 3.0, há duas maneiras diferentes de construir um Where-Object comando.

  • Bloco de script. Você pode usar um bloco de script para especificar o nome da propriedade, um operador de comparação e um valor de propriedade. Where-Object Retorna todos os objetos para os quais a instrução Script Block é true.

    Por exemplo, o comando a seguir obtém processos na Normal classe priority, ou seja, processos em que o valor da propriedade PriorityClass é Normaligual a .

    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, consulte about_Comparison_Operators.

  • Declaração de comparação. Você também pode escrever uma declaração de comparação, que é muito mais parecida com a linguagem natural. As instruções de comparação foram introduzidas no Windows PowerShell 3.0.

    Por exemplo, os comandos a seguir também obtêm processos que têm uma classe de prioridade de Normal. Esses comandos são equivalentes e você pode usá-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 em um Where-Object comando. A menos que especificado, todos os operadores não diferenciam maiúsculas de minúsculas. Antes do Windows PowerShell 3.0, os operadores de comparação na linguagem PowerShell só eram utilizáveis em blocos de script.

Quando você fornece uma única propriedade ao Where-Object, o cmdlet trata o valor da propriedade como uma expressão booleana. Quando o valor de Length 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, consulte about_Booleans.

Exemplos

Exemplo 1: Obter serviços interrompidos

Esses comandos obtêm uma lista de todos os serviços que foram interrompidos. A $_ variável automática representa cada objeto que é passado para o Where-Object cmdlet.

O primeiro comando usa o formato de bloco de script, o segundo comando usa o formato de instrução de comparação. Os comandos filtram os serviços da mesma maneira e retornam a mesma saída. 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

Esses comandos listam processos que têm um conjunto de trabalho maior que 250 megabytes (MB). Os comandos filtram os processos da mesma maneira e retornam a mesma saída. 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

Esses comandos obtêm os processos que têm um valor de propriedade ProcessName que começa com a letra p. O operador Match permite que você use correspondências de expressão regular.

Os comandos filtram os processos da mesma maneira e retornam a mesma saída. Apenas a sintaxe é diferente.

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

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

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

O primeiro comando usa o formato de instrução de comparação. Ele não usa nenhum aliases e inclui o nome para cada parâmetro.

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

Os comandos filtram os processos da mesma maneira e retornam a mesma saída. Apenas a sintaxe é diferente.

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

Exemplo 5: Obter comandos com base nas propriedades

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

Os comandos filtram sua entrada da mesma maneira e retornam a mesma saída. 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: Usar 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 várias condições.

Este comando obtém módulos não essenciais que suportam o recurso Ajuda atualizável. O comando usa 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 com Microsoft ou PS, e tem um valor para a propriedade HelpInfoURI, que informa ao PowerShell onde encontrar arquivos de ajuda atualizados para o módulo. O -and operador lógico conecta as instruções de comparação.

O exemplo usa o formato de comando de bloco de script. Operadores lógicos, como -and,-or, e -not são válidos apenas em blocos de script. Não é possível usá-los no formato de instrução de comparação de um Where-Object comando.

Parâmetros

-CContains

Indica que esse cmdlet obtém objetos de uma coleção se o valor da propriedade do objeto for uma correspondência exata para o valor especificado. Esta operação diferencia maiúsculas de minúsculas.

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

CContains refere-se a uma coleção de valores e é true se a coleção contém um item que é uma correspondência exata para o valor especificado. Se a entrada for um único objeto, o PowerShell a converterá em uma coleção de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CEQ

Indica que esse cmdlet obtém objetos se o valor da propriedade for igual ao valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CGE

Indica que esse cmdlet obtém objetos se o valor da propriedade for maior ou igual ao valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CGT

Indica que esse cmdlet obtém objetos se o valor da propriedade for maior que o valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CIn

Indica que esse cmdlet obtém objetos se o valor da propriedade incluir o valor especificado. Esta operação diferencia maiúsculas de minúsculas.

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

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

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

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CLE

Indica que esse cmdlet obtém objetos se o valor da propriedade for menor ou igual ao valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CLike

Indica que esse cmdlet obtém objetos se o valor da propriedade corresponder a um valor que inclua caracteres curinga (*). Esta operação diferencia maiúsculas de minúsculas.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CLT

Indica que esse cmdlet obtém objetos se o valor da propriedade for menor que o valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CMatch

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

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CNE

Indica que esse cmdlet obtém objetos se o valor da propriedade for diferente do valor especificado. Esta operação diferencia maiúsculas de minúsculas.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CNotContains

Indica que esse 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 diferencia maiúsculas de 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 true quando a coleção não contém nenhum item que seja uma correspondência exata para o valor especificado. Se a entrada for um único objeto, o PowerShell a converterá em uma coleção de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CNotIn

Indica que esse cmdlet obtém objetos se o valor da propriedade não for uma correspondência exata para o valor especificado. Esta operação diferencia maiúsculas de minúsculas.

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

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

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

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CNotLike

Indica que esse cmdlet obtém objetos se o valor da propriedade não corresponder a um valor que inclua caracteres curinga. Esta operação diferencia maiúsculas de minúsculas.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CNotMatch

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

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Contains

Indica que esse cmdlet obtém objetos se qualquer item no valor da 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 a converterá em uma coleção de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-EQ

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-FilterScript

Especifica o bloco de script usado para filtrar os objetos. Coloque o bloco de script entre chaves ({}).

O nome do parâmetro, FilterScript, é opcional.

Tipo:ScriptBlock
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-GE

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-GT

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-In

Indica que esse 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 a converterá em uma coleção de um objeto.

Se o valor da propriedade de um objeto for uma matriz, o PowerShell usará a igualdade de referência para determinar uma correspondência. Where-Object retorna o objeto somente se o valor do parâmetro Property e qualquer valor de Value forem a mesma instância de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IIn
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-InputObject

Especifica os objetos a serem filtrados. Você também pode canalizar os objetos para Where-Object.

Quando você usa o parâmetro InputObject com Where-Object, em vez de canalizar os resultados do comando para Where-Object, o cmdlet trata o InputObject como um único objeto. Isso é verdadeiro mesmo se o valor for uma coleção resultante de um comando, como -InputObject (Get-Process).

Como InputObject não pode retornar propriedades individuais de uma matriz ou coleção de objetos, recomendamos que, se você usar Where-Object para filtrar uma coleção de objetos para esses objetos que têm valores específicos em propriedades definidas, você use Where-Object no pipeline, conforme mostrado nos exemplos neste tópico.

Tipo:PSObject
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-Is

Indica que esse cmdlet obtém objetos se o valor da propriedade for uma instância do tipo .NET especificado. Coloque o nome do tipo entre colchetes.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-IsNot

Indica que esse 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]

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-LE

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Like

Indica que esse cmdlet obtém objetos se o valor da propriedade corresponder a um valor que inclua caracteres curinga (*).

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-LT

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Match

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

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NE

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Not

Indica que esse 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"

Esse parâmetro foi introduzido no Windows PowerShell 6.1.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NotContains

Indica que esse 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 é true se a coleção não contiver nenhum item que seja uma correspondência exata para o valor especificado. Se a entrada for um único objeto, o PowerShell a converterá em uma coleção de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NotIn

Indica que esse 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 Value for um único objeto, o PowerShell o converterá em uma coleção de um objeto.

Se o valor da propriedade de um objeto for uma matriz, o PowerShell usará a igualdade de referência para determinar uma correspondência. Where-Object retorna o objeto somente se o valor de Property e qualquer valor de Value não forem a mesma instância de um objeto.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NotLike

Indica que esse cmdlet obtém objetos se o valor da propriedade não corresponder a um valor que inclua caracteres curinga (*).

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NotMatch

Indica que esse 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 é salvo na $Matches variável automática.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Property

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Value

Especifica um valor de propriedade. O nome do parâmetro, Value, é opcional. Este parâmetro aceita caracteres curinga quando usado com os seguintes parâmetros de comparação:

  • CLike
  • CNotLike
  • Gostar
  • Não gosto

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:PSObject
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:True

Entradas

PSObject

Você pode canalizar qualquer objeto para este cmdlet.

Saídas

Object

Este cmdlet retorna 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 do Windows PowerShell 4.0, Where e ForEach métodos foram adicionados para uso com coleções.

Você pode ler mais sobre esses métodos aqui about_arrays