Erstellt einen Filter, der steuert, welche Objekte über eine Befehlspipeline übergeben werden.
Syntax
Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]
Beschreibung
Das Cmdlet "Where-Object" wählt Objekte aus dem Satz von Objekten aus, die an das Cmdlet übergeben werden. Es verwendet einen Skriptblock als Filter und wertet den Skriptblock für jedes Objekt aus. Wenn das Ergebnis der Auswertung "True" ist, wird das Objekt zurückgegeben. Wenn das Ergebnis der Auswertung nicht "True" ist, wird das Objekt ignoriert.
Parameter
-FilterScript <scriptblock>
Gibt den Skriptblock an, der zum Filtern der Objekte verwendet wird. Schließen Sie den Skriptblock in geschweifte Klammern ({}) ein.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-InputObject <psobject>
Gibt die zu filternden Objekte an. Sie können die Objekte auch über die Pipeline an Where-Object übergeben.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.Management.Automation.PSObject Sie können die zu filternden Objekte über die Pipeline an Where-Object übergeben. |
Ausgaben |
Beispiel 1
C:\PS>get-service | where-object {$_.Status -eq "Stopped"} Beschreibung ----------- Mit diesem Befehl wird eine Liste aller Dienste abgerufen, die derzeit beendet sind. Das Symbol "$" stellt jedes Objekt dar, das an das Cmdlet "Where-Object" übergeben wird.
Beispiel 2
C:\PS>get-process | where-object {$_.workingset -gt 25000*1024} Beschreibung ----------- Mit diesem Befehl werden alle Prozesse mit einem Workingset aufgelistet, dessen Größe 25.000 Kilobytes (KB) übersteigt. Der Wert der Workingset-Eigenschaft wird in Bytes gespeichert. Daher wird der Wert 25.000 mit 1.024 multipliziert.
Beispiel 3
C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" } Beschreibung ----------- Mit diesem Befehl werden die Prozesse mit einer ProcessName-Eigenschaft abgerufen, die mit dem Buchstaben "p" beginnt. Der match-Operator ermöglicht es Ihnen, reguläre Ausdrücke innerhalb einer Where-Klausel zu verwenden.
Beispiel 4
C:\PS>get-process -name svchost | where-object {$True} Beschreibung ----------- Mit diesem Befehl werden alle Prozesse mit dem Namen "svchost" aufgelistet. Mit dem Cmdlet "Where-Object" wird der Skriptblock ausgewertet, der i. d. R. einen Verweis auf das derzeit in der Pipeline enthaltene Objekt ("$_") enthält, und die Ergebnisse werden in einen booleschen Typ umgewandelt: "True" oder "False". Wenn das Ergebnis "True" ist, wird das Objekt zurückgegeben. Andernfalls wird es verworfen. In diesem Fall wird vom Skriptblock ausschließlich "True" zurückgegeben, sodass alle Objekte zurückgegeben werden.