Condividi tramite


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, gli eventi con un ID specifico o i 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 è uguale a Normal.

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

    Tutti gli operatori di confronto di PowerShell sono validi nel formato di 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à .Normal Questi comandi sono equivalenti e possono essere usati in modo interscambiabile.

    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 possono essere usati solo nei blocchi di script.

Quando si specifica una singola proprietà a Where-Object, il valore della proprietà viene considerato come un'espressione booleana. Quando il valore di 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 sulla valutazione dei valori booleani, vedere about_Booleans.

Esempio

Esempio 1: Ottenere i servizi arrestati

Questi comandi ottengono un elenco di tutti i servizi attualmente 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 sono equivalenti e possono essere usati indifferentemente.

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

Esempio 2: Ottenere processi basati sul working set

Questi processi elencano i processi con un working set maggiore di 250 megabyte (MB). La sintassi scriptblock e statement sono equivalenti e possono essere usate in modo intercambiabile.

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.

La sintassi scriptblock e statement sono equivalenti e possono essere usate in modo intercambiabile.

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. In questo comando non vengono usati alias e tutti i parametri includono il nome del parametro.

Il secondo comando rappresenta l'utilizzo più naturale del formato del comando di confronto. L'alias where viene sostituito con il nome del Where-Object cmdlet e tutti i nomi di parametro facoltativi vengono omessi.

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 .

# 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 OutputType
Get-Command | where {$_.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 PSIsContainer
Get-ChildItem | where {$_.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 {!$_.PSIsContainer}
# You cannot use the Not operator (!) in the comparison statement format of the command.
Get-ChildItem | where PSIsContainer -eq $False

Esempio 6: Usare più condizioni

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

In questo esempio viene illustrato 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. Le istruzioni di confronto sono connesse dall'operatore logico And .

L'esempio usa il formato di comando del blocco di script. Gli operatori logici, ad esempio And e Or, 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 ProcessName -CContains "svchost"

CContains fa riferimento a una raccolta di valori ed è true se l'insieme 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 -Value "svchost" -CIn ProcessName

CIn è simile a CContains, ad eccezione del fatto che le posizioni della proprietà e del 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 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 è distinzione tra maiuscole e minuscole. Quando l'input è scalare, il valore corrispondente viene salvato nella $Matches variabile automatica.

ad esempio Get-Process | where 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 è 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 è una corrispondenza esatta per il valore specificato. Questa operazione è distinzione tra maiuscole e minuscole.

ad esempio Get-Process | where 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 è una corrispondenza esatta per il valore specificato. Questa operazione è distinzione tra maiuscole e minuscole.

ad esempio Get-Process | where -Value "svchost" -CNotIn -Property ProcessName

Gli operatori NotIn e CNotIn sono simili a NotContains e CNotContains, ad eccezione del fatto che la proprietà e le posizioni dei valori 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 è distinzione tra maiuscole e minuscole.

ad esempio Get-Process | where 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 è distinzione tra maiuscole e minuscole. Quando l'input è scalare, il valore corrispondente viene salvato nella $Matches variabile automatica.

ad esempio Get-Process | where 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 qualsiasi elemento nel valore della proprietà dell'oggetto è una corrispondenza esatta per il valore specificato.

ad esempio Get-Process | where ProcessName -Contains "Svchost"

Se il valore della proprietà contiene 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 che viene usato 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 -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"

Se il valore del parametro 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 di riferimento 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 eseguire la pipe degli oggetti in Where-Object.

Quando si usa il parametro InputObject con Where-Object, anziché i risultati dei comandi di piping in Where-Object, il valore InputObject viene considerato come un singolo oggetto. Questo valore è true anche se il valore è una raccolta che è il risultato di un comando, ad esempio -InputObject (Get-Process). Poiché InputObject non può restituire singole proprietà da una matrice o da un insieme di oggetti, è consigliabile Where-Object filtrare una raccolta di oggetti per tali 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 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 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 è scalare, il valore corrispondente viene salvato nella $Matches variabile automatica.

ad esempio Get-Process | where 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 di $null o $false.

ad esempio Get-Service | where -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 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 è una corrispondenza esatta per uno dei valori specificati.

ad esempio Get-Process | where -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 di riferimento 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 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 è scalare, il valore corrispondente viene salvato nella $Matches variabile automatica.

ad esempio Get-Process | where 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 viene usato con i parametri di confronto seguenti:

  • CLike
  • CNotLike
  • Come
  • NotLike

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

Input

PSObject

È possibile inviare tramite pipe gli oggetti a questo cmdlet.

Output

Object

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

Note

A partire da Windows PowerShell 4.0 Where e ForEach i metodi sono stati aggiunti per l'uso con le raccolte.

Per altre informazioni su questi metodi , vedere qui about_arrays