Select-Object

Wählt angegebene Eigenschaften eines Objekts oder eines Satzes von Objekten aus. Er kann auch eindeutige Objekte aus einem Array von Objekten oder eine angegebene Anzahl von Objekten vom Anfang oder Ende eines Arrays von Objekten auswählen.

Syntax

Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-ExpandProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last <int>] [-Skip <int>] [-Unique] [<CommonParameters>]

Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "Select-Object" werden nur die angegebenen Eigenschaften eines Objekts oder Satzes von Objekten abgerufen. Er kann auch eindeutige Objekte aus einem Array von Objekten oder eine angegebene Anzahl von Objekten vom Anfang oder Ende eines Arrays von Objekten auswählen.

Wenn Sie angegebene Eigenschaften mit Select-Object auswählen, werden die Werte dieser Eigenschaften aus den Eingabeobjekten kopiert und neue Objekte erstellt, die über die angegebenen Eigenschaften und kopierten Werte verfügen.

Geben Sie die auszuwählenden Eigenschaften mit dem Property-Parameter an. Oder wählen Sie mit den Parametern "First", "Last", "Unique", "Skip" und "Index" bestimmte Objekte aus einem Array von Eingabeobjekten aus. Für eine spezifischere Objektfilterung verwenden Sie das Cmdlet "Where-Object".

Parameter

-ExcludeProperty <string[]>

Entfernt die angegebenen Eigenschaften aus der Auswahl. Platzhalter sind zulässig. Dieser Parameter ist nur wirksam, wenn der Befehl auch den Property-Parameter einschließt.

Der Wert des Eigenschaftenparameters kann eine berechnete Eigenschaft sein. Dies ist eine Hashtabelle, die einen Namen angibt und einen Wert zur Anzeige der Eigenschaft berechnet. Gültige Schlüssel sind:

– Name oder Label <Zeichenfolge>

– Expression <Zeichenfolge> oder <Skriptblock>

Weitere Informationen finden Sie in den Beispielen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-ExpandProperty <string>

Gibt eine Eigenschaft an, die ausgewählt werden soll, und gibt an, dass diese Eigenschaft erweitert werden soll. Platzhalter sind im Eigenschaftennamen zulässig.

Wenn die angegebene Eigenschaft z. B. ein Array ist, ist jeder Wert des Arrays in der Ausgabe enthalten. Wenn die Eigenschaft ein Objekt enthält, werden die Eigenschaften dieses Objekts in der Ausgabe angezeigt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-First <int>

Gibt die Anzahl der ab dem Anfang des Arrays von Eingabeobjekten auszuwählenden Objekte an.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Index <Int32[]>

Wählt Objekte auf Grundlage ihrer Indexwerte aus einem Array aus. Geben Sie die Indizes in einer durch Trennzeichen getrennten Liste ein.

Indizes in einem Array beginnen mit 0, wobei 0 den ersten Wert und (n-1) den letzten Wert darstellt.

Erforderlich?

false

Position?

named

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-InputObject <psobject>

Gibt Objekte an, die über die Pipeline an das Cmdlet gesendet werden sollen. Mit diesem Parameter können Sie Objekte über die Pipeline an Select-Object übergeben.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-Last <int>

Gibt die Anzahl der ab dem Ende des Arrays von Eingabeobjekten auszuwählenden Objekte an.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Property <Object[]>

Gibt die auszuwählenden Eigenschaften an. Platzhalter sind zulässig.

Bei dem Wert des Property-Parameters kann es sich um eine neu berechnete Eigenschaft handeln. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind:

– Name (oder Label) <Zeichenfolge>

– Expression <Zeichenfolge> oder <Skriptblock>

Erforderlich?

false

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-Skip <int>

Überspringt die angegebene Anzahl von Elementen (wählt sie nicht aus). Beim Skip-Parameter beginnt die Zählung standardmäßig am Anfang des Arrays oder der Liste von Objekten. Wenn jedoch im Befehl der Last-Parameter verwendet wird, beginnt die Zählung am Ende der Liste bzw. des Arrays.

Im Gegensatz zum Index-Parameter, bei dem die Zählung mit 0 beginnt, beginnt beim Skip-Parameter die Zählung mit 1.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Unique

Gibt an, dass bei einer Teilmenge von Eingabeobjekten mit identischen Eigenschaften und Werten nur ein einzelnes Element der Teilmenge ausgewählt wird.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

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 jedes Objekt über die Pipeline an Select-Object übergeben.

Ausgaben

System.Management.Automation.PSObject

Hinweise

Sie können auch über den integrierten Alias "select" auf Select-Object verweisen. Weitere Informationen finden Sie unter "about_Aliases".

Beispiel 1

C:\PS>get-process | select-object ProcessName,Id,WS

Beschreibung
-----------
Mit diesem Befehl wird eine Liste von Prozessen angezeigt. Zeigt nur die Eigenschaften für Name, ID und Workingset (WS) der Prozesse an.





Beispiel 2

C:\PS>get-process | select-object processname -expandproperty modules |
format-list

ProcessName       : 00THotkey
Size              : 256
Company           : TOSHIBA Corporation
FileVersion       : 1, 0, 0, 27
ProductVersion    : 6, 2, 0, 0
Description       : THotkey
Product           : TOSHIBA THotkey
ModuleName        : 00THotkey.exe
FileName          : C:\WINDOWS\system32\00THotkey.exe
BaseAddress       : 4194304

Beschreibung
-----------
Mit diesem Befehl werden Informationen über die Module angezeigt, die von den auf einem Computer ausgeführten Prozessen verwendet werden. Mit dem ExpandProperty-Parameter werden die Details der Modules-Eigenschaft angezeigt.





Beispiel 3

C:\PS>get-process | sort-object -property WS | select-object -Last 5

Handles  NPM(K)    PM(K)      WS(K) VS(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   2866     320    33432      45764   203   222.41   1292 svchost
    577      17    23676      50516   265    50.58   4388 WINWORD
    826      11    75448      76712   188    19.77   3780 Ps
   1367      14    73152      88736   216    61.69    676 Ps
   1612      44    66080      92780   380   900.59   6132 INFOPATH

Beschreibung
-----------
Mit diesem Befehl werden die fünf Prozesse mit der größten Speicherauslastung angezeigt. Mit dem Cmdlet "Sort-Object" werden die Prozesse nach Speicherauslastung (Workingset) sortiert, und mit dem Cmdlet "Select-Object" werden nur die letzten fünf Elemente des resultierenden Objektarrays ausgewählt.





Beispiel 4

C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}

ProcessName  StartDay
----         --------
alg          Wednesday
ati2evxx     Wednesday
ati2evxx     Thursday
...

Beschreibung
-----------
Mit diesem Befehl werden Name und Starttag der auf dem Computer ausgeführten Prozesse angezeigt. 

Die Werte des Property-Parameters sind "ProcessName" und eine berechnete Eigenschaft mit dem Namen "Start Day". Die Eigenschaft "Start Day" wird hinzugefügt, indem eine Hashtabelle mit dem Name-Schlüssel und dem Expression-Schlüssel verwendet wird.





Beispiel 5

C:\PS>"a","b","c","a","a","a" | select-object -unique

a
b
c

Beschreibung
-----------
Mit diesem Befehl werden eindeutige Zeichen aus einem Zeichenarray angezeigt.





Beispiel 6

C:\PS>$a = get-eventlog -log "Windows PowerShell" 

C:\PS> $a | select-object -index 0, ($a.count - 1)

Beschreibung
-----------
Mit diesen Befehlen werden das erste (neueste) und letzte (älteste) Ereignis im Windows-PowerShell Ereignisprotokoll abgerufen. 

Im ersten Befehl werden alle Ereignisse im Windows PowerShell-Protokoll mit dem Cmdlet "Get-EventLog" abgerufen. Die Ereignisse werden in der Variablen "$a" gespeichert.

Im zweiten Befehl werden die Ereignisse in $a mithilfe eines Pipelineoperators (|) an das Cmdlet "Select-Object" gesendet. Beim Befehl "Select-Object" werden Elemente mithilfe des Index-Parameters anhand ihrer Indexnummer ausgewählt. Der Index für das erste Ereignis ist 0. Der Index für das letzte Ereignis ist die Anzahl der Elemente in $a minus 1.





Beispiel 7

C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1)

Beschreibung
-----------
Mit diesem Befehl wird auf jedem in der Datei "Servers.txt" aufgelisteten Computer eine neue PSSession erstellt, mit Ausnahme des ersten Computers.

Dieser Befehl wählt mit dem Cmdlet "Select-Object" alle Computer außer dem ersten Computer in einer Liste von Computernamen aus. Die resultierende Liste von Computern wird als Wert des ComputerName-Parameters für das Cmdlet "New-PSSession" festgelegt.





Siehe auch

Konzepte

Where-Object
Group-Object
Sort-Object