Where-Object

Seleziona gli oggetti di una raccolta in base ai valori di proprietà.

Sintassi

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

Descrizione

Il Where-Object cmdlet seleziona gli oggetti con valori di proprietà specifici dall'insieme di oggetti passati. Ad esempio, è possibile usare il Where-Object cmdlet per selezionare i file creati dopo una determinata data, eventi con un ID specifico o computer che usano una determinata versione di Windows.

A partire da Windows PowerShell 3.0, esistono due modi diversi per costruire un Where-Object comando.

  • Blocco di script. È possibile usare un blocco di script per specificare il nome della proprietà, un operatore di confronto e un valore della proprietà. Where-Object restituisce tutti gli oggetti per i quali l'istruzione del blocco di script è true.

    Ad esempio, il comando seguente ottiene i processi nella Normal classe priority, ovvero elabora dove il valore della proprietà PriorityClass è Normaluguale a .

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

    Tutti gli operatori di confronto di PowerShell sono validi nel formato del blocco di script. Per altre informazioni, vedere about_Comparison_Operators.

  • Istruzione di confronto. È inoltre possibile scrivere un'istruzione di confronto, che è molto più simile al linguaggio naturale. Le istruzioni di confronto sono state introdotte in Windows PowerShell 3.0.

    Ad esempio, i comandi seguenti ottengono anche processi con una classe di priorità di Normal. Questi comandi sono equivalenti ed è possibile usarli in modo intercambiabile.

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

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

    A partire da Windows PowerShell 3.0, Where-Object aggiunge operatori di confronto come parametri in un Where-Object comando. Se non diversamente specificato, tutti gli operatori non distinguono tra maiuscole e minuscole. Prima di Windows PowerShell 3.0, gli operatori di confronto nel linguaggio PowerShell erano utilizzabili solo nei blocchi di script.

Quando si specifica una singola proprietà a Where-Object, il cmdlet considera il valore della proprietà come espressione booleana. Quando il valore della proprietà Length non è zero, l'espressione restituisce $true. Ad esempio: ('hi', '', 'there') | Where-Object Length

L'esempio precedente è funzionalmente equivalente a:

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

Per altre informazioni su come PowerShell valuta i valori booleani, vedere about_Booleans.

Esempio

Esempio 1: Ottenere i servizi arrestati

Questi comandi ottengono un elenco di tutti i servizi arrestati. La $_ variabile automatica rappresenta ogni oggetto passato al Where-Object cmdlet .

Il primo comando usa il formato del blocco di script, il secondo comando usa il formato dell'istruzione di confronto. I comandi filtrano i servizi nello stesso modo e restituiscono lo stesso output. Solo la sintassi è diversa.

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

Esempio 2: Ottenere processi basati sul working set

Questi comandi elencano i processi con un working set maggiore di 250 megabyte (MB). I comandi filtrano i processi allo stesso modo e restituiscono lo stesso output. Solo la sintassi è diversa.

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

Esempio 3: Ottenere processi in base al nome del processo

Questi comandi ottengono i processi con un valore della proprietà ProcessName che inizia con la lettera p. L'operatore Match consente di usare corrispondenze di espressioni regolari.

I comandi filtrano i processi allo stesso modo e restituiscono lo stesso output. Solo la sintassi è diversa.

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

Esempio 4: Usare il formato dell'istruzione di confronto

In questo esempio viene illustrato come usare il nuovo formato di istruzione di confronto del Where-Object cmdlet .

Il primo comando usa il formato dell'istruzione di confronto. Non usa alias e include il nome per ogni parametro.

Il secondo comando rappresenta l'utilizzo più naturale del formato del comando di confronto. Il comando sostituisce l'alias where per il nome del Where-Object cmdlet e omette tutti i nomi di parametro facoltativi.

I comandi filtrano i processi allo stesso modo e restituiscono lo stesso output. Solo la sintassi è diversa.

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

Esempio 5: Ottenere i comandi in base alle proprietà

Questo esempio illustra come scrivere comandi che restituiscono gli elementi true o false o che hanno qualsiasi valore per una proprietà specificata. Ogni esempio mostra sia il blocco di script che i formati di istruzione di confronto per il comando .

I comandi filtrano l'input nello stesso modo e restituiscono lo stesso output. Solo la sintassi è diversa.

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

Esempio 6: Usare più condizioni

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

Questo esempio illustra come creare un Where-Object comando con più condizioni.

Questo comando recupera i moduli non di base che supportano la funzionalità Guida aggiornabile. Il comando usa il parametro ListAvailable del Get-Module cmdlet per ottenere tutti i moduli nel computer. Un operatore pipeline (|) invia i moduli al Where-Object cmdlet , che ottiene i moduli i cui nomi non iniziano con Microsoft o PSe hanno un valore per la proprietà HelpInfoURI , che indica a PowerShell dove trovare i file della Guida aggiornati per il modulo. L'operatore -and logico connette le istruzioni di confronto.

L'esempio usa il formato di comando del blocco di script. Gli operatori logici, ad esempio -and,-or e -not sono validi solo nei blocchi di script. Non è possibile usarli nel formato dell'istruzione di confronto di un Where-Object comando.

Parametri

-CContains

Indica che questo cmdlet ottiene oggetti da una raccolta se il valore della proprietà dell'oggetto è una corrispondenza esatta per il valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object ProcessName -CContains "svchost"

CContains fa riferimento a una raccolta di valori ed è true se la raccolta contiene un elemento che corrisponde esattamente al valore specificato. Se l'input è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CEQ

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è uguale al valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CGE

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è maggiore o uguale al valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CGT

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è maggiore del valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CIn

Indica che questo cmdlet ottiene oggetti se il valore della proprietà include il valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

CIn è simile a CContains, ad eccezione del fatto che le posizioni di proprietà e valore vengono invertite. Ad esempio, le istruzioni seguenti sono entrambe true.

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

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

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CLE

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è minore o uguale al valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CLike

Indica che questo cmdlet ottiene oggetti se il valore della proprietà corrisponde a un valore che include caratteri jolly (*). Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object ProcessName -CLike "*host"

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CLT

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è minore del valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CMatch

Indica che questo cmdlet ottiene oggetti se il valore della proprietà corrisponde all'espressione regolare specificata. Questa operazione fa distinzione tra maiuscole e minuscole. Quando l'input è un singolo oggetto, il valore corrispondente viene salvato nella $Matches variabile automatica.

Ad esempio: Get-Process | Where-Object ProcessName -CMatch "Shell"

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CNE

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è diverso dal valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CNotContains

Indica che questo cmdlet ottiene oggetti se il valore della proprietà dell'oggetto non corrisponde esattamente al valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object ProcessName -CNotContains "svchost"

NotContains e CNotContains fanno riferimento a una raccolta di valori e sono true quando la raccolta non contiene elementi che corrispondono esattamente al valore specificato. Se l'input è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CNotIn

Indica che questo cmdlet ottiene oggetti se il valore della proprietà non corrisponde esattamente al valore specificato. Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Gli operatori NotIn e CNotIn sono simili a NotContains e CNotContains, ad eccezione del fatto che le posizioni di proprietà e valore vengono invertite. Ad esempio, le istruzioni seguenti sono true.

"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 che questo cmdlet ottiene oggetti se il valore della proprietà non corrisponde a un valore che include caratteri jolly. Questa operazione fa distinzione tra maiuscole e minuscole.

Ad esempio: Get-Process | Where-Object ProcessName -CNotLike "*host"

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-CNotMatch

Indica che questo cmdlet ottiene oggetti se il valore della proprietà non corrisponde all'espressione regolare specificata. Questa operazione fa distinzione tra maiuscole e minuscole. Quando l'input è un singolo oggetto, il valore corrispondente viene salvato nella $Matches variabile automatica.

Ad esempio: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-Contains

Indica che questo cmdlet ottiene oggetti se un elemento nel valore della proprietà dell'oggetto è una corrispondenza esatta per il valore specificato.

Ad esempio: Get-Process | Where-Object ProcessName -Contains "Svchost"

Se l'input è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà è uguale al valore specificato.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-FilterScript

Specifica il blocco di script utilizzato per filtrare gli oggetti. Racchiudere il blocco di script tra parentesi graffe ({}).

Il nome del parametro FilterScript è facoltativo.

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

-GE

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è maggiore o uguale al valore specificato.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà è maggiore del valore specificato.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà corrisponde a uno dei valori specificati. Ad esempio:

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

Se l'input è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Se il valore della proprietà di un oggetto è una matrice, PowerShell usa l'uguaglianza dei riferimenti per determinare una corrispondenza. Where-Object restituisce l'oggetto solo se il valore del parametro Property e qualsiasi valore di Value sono la stessa istanza di un oggetto.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-InputObject

Specifica gli oggetti da filtrare. È anche possibile inviare tramite pipe gli oggetti a Where-Object.

Quando si usa il parametro InputObject con Where-Object, invece di eseguire il piping dei risultati del comando in Where-Object, il cmdlet considera InputObject come un singolo oggetto. Questo vale anche se il valore è una raccolta che rappresenta il risultato di un comando, ad esempio -InputObject (Get-Process).

Poiché InputObject non può restituire singole proprietà da una matrice o da una raccolta di oggetti, è consigliabile, se si usa Where-Object per filtrare una raccolta di oggetti per gli oggetti con valori specifici nelle proprietà definite, usare Where-Object nella pipeline, come illustrato negli esempi di questo argomento.

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

-Is

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è un'istanza del tipo .NET specificato. Racchiudere il nome del tipo tra parentesi quadre.

Ad esempio, Get-Process | Where-Object StartTime -Is [DateTime]

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-IsNot

Indica che questo cmdlet ottiene oggetti se il valore della proprietà non è un'istanza del tipo .NET specificato.

Ad esempio, Get-Process | where StartTime -IsNot [DateTime]

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-LE

Indica che questo cmdlet ottiene oggetti se il valore della proprietà è minore o uguale al valore specificato.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà corrisponde a un valore che include caratteri jolly (*).

Ad esempio: Get-Process | Where-Object ProcessName -Like "*host"

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà è minore del valore specificato.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà corrisponde all'espressione regolare specificata. Quando l'input è un singolo oggetto, il valore corrispondente viene salvato nella $Matches variabile automatica.

Ad esempio: Get-Process | Where-Object ProcessName -Match "shell"

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà è diverso dal valore specificato.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se la proprietà non esiste o ha un valore o $null$false.

Ad esempio: Get-Service | Where-Object -Not "DependentServices"

Questo parametro è stato introdotto in Windows PowerShell 6.1.

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

-NotContains

Indica che questo cmdlet ottiene oggetti se nessuno degli elementi nel valore della proprietà è una corrispondenza esatta per il valore specificato.

Ad esempio: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains fa riferimento a una raccolta di valori ed è true se la raccolta non contiene elementi che corrispondono esattamente al valore specificato. Se l'input è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà non corrisponde esattamente a uno dei valori specificati.

Ad esempio: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Se il valore di Value è un singolo oggetto, PowerShell lo converte in una raccolta di un oggetto.

Se il valore della proprietà di un oggetto è una matrice, PowerShell usa l'uguaglianza dei riferimenti per determinare una corrispondenza. Where-Object restituisce l'oggetto solo se il valore di Property e qualsiasi valore di Value non sono la stessa istanza di un oggetto.

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti se il valore della proprietà non corrisponde a un valore che include caratteri jolly (*).

Ad esempio: Get-Process | Where-Object ProcessName -NotLike "*host"

Questo parametro è stato introdotto in 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 che questo cmdlet ottiene oggetti quando il valore della proprietà non corrisponde all'espressione regolare specificata. Quando l'input è un singolo oggetto, il valore corrispondente viene salvato nella $Matches variabile automatica.

Ad esempio: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-Property

Specifica il nome di una proprietà di oggetto. Il nome del parametro, Property, è facoltativo.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-Value

Specifica un valore di proprietà. Il nome del parametro, Value, è facoltativo. Questo parametro accetta caratteri jolly quando vengono usati con i parametri di confronto seguenti:

  • CLike
  • CNotLike
  • Like
  • NotLike

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

Input

PSObject

È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.

Output

Object

Questo cmdlet restituisce gli elementi selezionati dal set di oggetti di input.

Note

PowerShell include gli alias seguenti per Where-Object:

  • Tutte le piattaforme:
    • ?
    • where

A partire da Windows PowerShell 4.0 sono WhereForEach stati aggiunti metodi per l'uso con le raccolte.

Per altre informazioni su questi metodi, vedere qui about_arrays