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 èNormal
uguale 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 unWhere-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 PS
e 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.
- Per altre informazioni sugli operatori logici di PowerShell, vedere about_Logical_Operators.
- Per altre informazioni sulla funzionalità Guida aggiornabile, vedere about_Updatable_Help.
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
È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.
Output
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 Where
ForEach
stati aggiunti metodi per l'uso con le raccolte.
Per altre informazioni su questi metodi, vedere qui about_arrays
Collegamenti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per