Sort-Object

Sortiert Objekte nach Eigenschaftenwerten.

Syntax

Sort-Object
    [-Stable]
    [-Descending]
    [-Unique]
    [-InputObject <PSObject>]
    [[-Property] <Object[]>]
    [-Culture <String>]
    [-CaseSensitive]
    [<CommonParameters>]
Sort-Object
    [-Descending]
    [-Unique]
    -Top <Int32>
    [-InputObject <PSObject>]
    [[-Property] <Object[]>]
    [-Culture <String>]
    [-CaseSensitive]
    [<CommonParameters>]
Sort-Object
    [-Descending]
    [-Unique]
    -Bottom <Int32>
    [-InputObject <PSObject>]
    [[-Property] <Object[]>]
    [-Culture <String>]
    [-CaseSensitive]
    [<CommonParameters>]

Beschreibung

Das Sort-Object Cmdlet sortiert Objekte in aufsteigender oder absteigender Reihenfolge basierend auf Objekteigenschaftswerten. Wenn Sortiereigenschaften nicht in einem Befehl enthalten sind, verwendet PowerShell standardmäßige Sortiereigenschaften des ersten Eingabeobjekts. Wenn der Typ des Eingabeobjekts keine Standardsortierungseigenschaften aufweist, versucht PowerShell, die Objekte selbst zu vergleichen. Weitere Informationen finden Sie im Abschnitt Hinweise.

Sie können Objekte nach einer einzelnen Eigenschaft oder mehreren Eigenschaften sortieren. Mehrere Eigenschaften verwenden Hashtabellen zum Sortieren in aufsteigender Reihenfolge, absteigender Reihenfolge oder einer Kombination aus Sortierreihenfolgen. Eigenschaften werden nach Groß-/Kleinschreibung oder Groß-/Kleinschreibung sortiert. Verwenden Sie den Parameter Unique , um Duplikate aus der Ausgabe zu entfernen.

Beispiele

Beispiel 1: Sortieren des aktuellen Verzeichnisses nach Name

In diesem Beispiel werden die Dateien und Unterverzeichnisse in einem Verzeichnis sortiert.

Get-ChildItem -Path C:\Test | Sort-Object

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/13/2019     13:26             20 Bfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a----         2/1/2019     08:43            183 CreateTestFile.ps1
d-----        2/25/2019     18:25                Files
d-----        2/25/2019     18:24                Logs
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt
-a----        2/12/2019     16:24             23 Zsystemlog.log

Das Get-ChildItem Cmdlet ruft die Dateien und Unterverzeichnisse aus dem Verzeichnis ab, das durch den Path-Parameter angegeben wird. C:\Test Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object gibt keine Eigenschaft an, sodass die Ausgabe nach der Standardsortiereigenschaft " Name" sortiert wird.

Beispiel 2: Sortieren des aktuellen Verzeichnisses nach Dateilänge

Mit diesem Befehl werden die Dateien im aktuellen Verzeichnis nach Länge in aufsteigender Reihenfolge angezeigt.

Get-ChildItem -Path C:\Test -File | Sort-Object -Property Length

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     13:26             20 Bfile.txt
-a----        2/12/2019     16:24             23 Zsystemlog.log
-a----        2/13/2019     08:55             26 anotherfile.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt
-a----         2/1/2019     08:43            183 CreateTestFile.ps1
-a----        2/12/2019     15:40         118014 Command.txt

Das Get-ChildItem Cmdlet ruft die Dateien aus dem Verzeichnis ab, das durch den Path-Parameter angegeben wird. Der Parameter File gibt an, dass Get-ChildItem nur Dateiobjekte abruft. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter Length , um die Dateien in aufsteigender Reihenfolge nach Länge zu sortieren.

Beispiel 3: Sortieren von Prozessen nach Speicherauslastung

In diesem Beispiel werden Prozesse mit der höchsten Speicherauslastung basierend auf ihrer Arbeitssatzgröße (WS) angezeigt.

Get-Process | Sort-Object -Property WS | Select-Object -Last 5

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    136   193.92     217.11     889.16   87492   8 OUTLOOK
    112   347.73     297.02      95.19  106908   8 Teams
    206   266.54     323.71      37.17   60620   8 MicrosoftEdgeCP
     35   552.19     549.94     131.66    6552   8 Code
      0     1.43     595.12       0.00    2780   0 Memory Compression

Das Get-Process Cmdlet ruft die Liste der Prozesse ab, die auf dem Computer ausgeführt werden. Die Prozessobjekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Property-Parameter , um die Objekte nach WS zu sortieren. Die Objekte werden an das Select-Object Cmdlet gesendet. Select-Object verwendet den Parameter Last , um die letzten fünf Objekte anzugeben, bei denen es sich um die Objekte mit der höchsten WS-Verwendung handelt.

In PowerShell 6 ist der Sort-Object Parameter Bottom eine Alternative zu Select-Object. Beispiel: Get-Process | Sort-Object -Property WS -Bottom 5.

Beispiel 4: Sortieren von HistoryInfo-Objekten nach ID

Mit diesem Befehl werden die HistoryInfo-Objekte der PowerShell-Sitzung mithilfe der Id-Eigenschaft sortiert. Jede PowerShell-Sitzung verfügt über einen eigenen Befehlsverlauf.

Get-History | Sort-Object -Property Id -Descending

Id CommandLine
  -- -----------
  10 Get-Command Sort-Object -Syntax
   9 $PSVersionTable
   8 Get-Command Sort-Object -Syntax
   7 Get-Command Sort-Object -ShowCommandInfo
   6 Get-ChildItem -Path C:\Test | Sort-Object -Property Length
   5 Get-Help Clear-History -online
   4 Get-Help Clear-History -full
   3 Get-ChildItem | Get-Member
   2 Get-Command Sort-Object -Syntax
   1 Set-Location C:\Test\

Das Get-History Cmdlet ruft die Verlaufsobjekte aus der aktuellen PowerShell-Sitzung ab. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter Property , um die Objekte nach ID zu sortieren. Der Parameter "Descending " sortiert den Befehlsverlauf vom neuesten zum ältesten.

Beispiel 5: Verwenden einer Hashtabelle zum Sortieren von Eigenschaften in aufsteigender und absteigender Reihenfolge

In diesem Beispiel werden zwei Eigenschaften zum Sortieren der Objekte, Status und DisplayName verwendet. Der Status wird in absteigender Reihenfolge sortiert, und DisplayName wird in aufsteigender Reihenfolge sortiert.

Eine Hashtabelle wird verwendet, um den Wert des Property-Parameters anzugeben. Die Hashtabelle verwendet einen Ausdruck, um die Eigenschaftennamen und Sortierreihenfolgen anzugeben. Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables (Informationen zu Hashtabellen).

Die status-Eigenschaft, die in der Hashtabelle verwendet wird, ist eine aufgezählte Eigenschaft. Weitere Informationen finden Sie unter ServiceControllerStatus.

Get-Service |
    Sort-Object -Property @{Expression = "Status"; Descending = $true},
                          @{Expression = "DisplayName"; Descending = $false}

Status   Name               DisplayName
------   ----               -----------
Running  Appinfo            Application Information
Running  BthAvctpSvc        AVCTP service
Running  BrokerInfrastru... Background Tasks Infrastructure Ser...
Running  BDESVC             BitLocker Drive Encryption Service
Running  CoreMessagingRe... CoreMessaging
Running  VaultSvc           Credential Manager
Running  DsSvc              Data Sharing Service
Running  Dhcp               DHCP Client
...
Stopped  ALG                Application Layer Gateway Service
Stopped  AppMgmt            Application Management
Stopped  BITS               Background Intelligent Transfer Ser...
Stopped  wbengine           Block Level Backup Engine Service
Stopped  BluetoothUserSe... Bluetooth User Support Service_14fb...
Stopped  COMSysApp          COM+ System Application
Stopped  smstsmgr           ConfigMgr Task Sequence Agent
Stopped  DeviceInstall      Device Install Service
Stopped  MSDTC              Distributed Transaction Coordinator

Das Get-Service Cmdlet ruft die Liste der Dienste auf dem Computer ab. Die Dienstobjekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter Property mit einer Hashtabelle, um die Eigenschaftennamen und Sortierreihenfolgen anzugeben. Der Property-Parameter wird nach zwei Eigenschaften sortiert: Status in absteigender Reihenfolge und DisplayName in aufsteigender Reihenfolge.

Status ist eine aufgezählte Eigenschaft. "Stopped" hat den Wert 1 und "Running " hat den Wert 4. Der Absteigende Parameter ist so festgelegt$True, dass ausgeführte Prozesse vor beendeten Prozessen angezeigt werden. DisplayName legt den Descending-Parameter so fest, dass $False die Anzeigenamen in alphabetischer Reihenfolge sortiert werden.

Beispiel 6: Sortieren von Textdateien nach Zeitspanne

Mit diesem Befehl werden Textdateien in absteigender Reihenfolge nach der Zeitspanne zwischen CreationTime und LastWriteTime sortiert.

Get-ChildItem -Path C:\Test\*.txt |
    Sort-Object -Property {$_.CreationTime - $_.LastWriteTime} |
    Format-Table CreationTime, LastWriteTime, FullName

CreationTime          LastWriteTime        FullName
------------          -------------        --------
11/21/2018 12:39:01   2/26/2019 08:59:36   C:\Test\test2.txt
12/4/2018 08:29:41    2/26/2019 08:57:05   C:\Test\powershell_list.txt
2/20/2019 08:15:59    2/26/2019 12:09:43   C:\Test\CreateTestFile.txt
2/20/2019 08:15:59    2/26/2019 12:07:41   C:\Test\Command.txt
2/20/2019 08:15:59    2/26/2019 08:57:52   C:\Test\ReadOnlyFile.txt
11/29/2018 15:16:50   12/4/2018 16:16:24   C:\Test\LogData.txt
2/25/2019 18:25:11    2/26/2019 12:08:47   C:\Test\Zsystemlog.txt
2/25/2019 18:25:11    2/26/2019 08:55:33   C:\Test\Bfile.txt
2/26/2019 08:46:59    2/26/2019 12:12:19   C:\Test\LogFile3.txt

Das Get-ChildItem Cmdlet verwendet den Parameter "Path ", um das Verzeichnis C:\Test und alle *.txt Dateien anzugeben. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter Property mit einem Scriptblock, um die einzelnen Dateien zwischen CreationTime und LastWriteTime zu bestimmen.

Beispiel 7: Sortieren von Namen in einer Textdatei

In diesem Beispiel wird gezeigt, wie eine Liste aus einer Textdatei sortiert wird. Die Originaldatei wird als nicht sortierte Liste angezeigt. Sort-Object sortiert den Inhalt und sortiert dann den Inhalt mit dem Unique-Parameter , der Duplikate entfernt.

# All items unsorted
Get-Content -Path C:\Test\ServerNames.txt

localhost
server01
server25
LOCALHOST
Server19
server3
localhost

# All items sorted
Get-Content -Path C:\Test\ServerNames.txt | Sort-Object
localhost
LOCALHOST
localhost
server01
Server19
server25
server3

# Unique filtered items sorted
Get-Content -Path C:\Test\ServerNames.txt | Sort-Object -Unique

localhost
server01
Server19
server25
server3

Das Get-Content Cmdlet verwendet den Parameter "Path ", um das Verzeichnis und den Dateinamen anzugeben. Die Datei ServerNames.txt enthält eine nicht sortierte Liste von Computernamen.

Das Get-Content Cmdlet verwendet den Parameter "Path ", um das Verzeichnis und den Dateinamen anzugeben. Die Datei ServerNames.txt enthält eine nicht sortierte Liste von Computernamen. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object sortiert die Liste in der Standardreihenfolge aufsteigend.

Das Get-Content Cmdlet verwendet den Parameter "Path ", um das Verzeichnis und den Dateinamen anzugeben. Die Datei ServerNames.txt enthält eine nicht sortierte Liste von Computernamen. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter Unique , um doppelte Computernamen zu entfernen. Die Liste wird in der Standardreihenfolge aufsteigend sortiert.

Beispiel 8: Sortieren einer Zeichenfolge als ganze Zahl

In diesem Beispiel wird gezeigt, wie Sie eine Textdatei sortieren, die Zeichenfolgenobjekte als ganze Zahlen enthält. Sie können jeden Befehl an die Pipeline senden und überprüfen, ob es sich bei den Objekten um Get-Member Zeichenfolgen und nicht um ganze Zahlen handelt. Für diese Beispiele enthält die ProductId.txt Datei eine nicht sortierte Liste der Produktnummern.

Ruft im ersten Beispiel Get-Content den Inhalt der Datei- und Rohrzeilen an das Sort-Object Cmdlet ab. Sort-Object sortiert die Zeichenfolgenobjekte in aufsteigender Reihenfolge.

# String sorted
Get-Content -Path C:\Test\ProductId.txt | Sort-Object

0
1
12345
1500
2
2800
3500
4100
500
6200
77
88
99999

# Integer sorted
Get-Content -Path C:\Test\ProductId.txt | Sort-Object {[int]$_}

0
1
2
77
88
500
1500
2800
3500
4100
6200
12345
99999

Ruft im zweiten Beispiel Get-Content den Inhalt der Datei- und Rohrleitungen an das Sort-Object Cmdlet ab. Sort-Object verwendet einen Skriptblock, um die Zeichenfolgen in ganze Zahlen zu konvertieren. Wandelt die Zeichenfolge im Beispielcode [int] in eine ganze Zahl um und $_ stellt jede Zeichenfolge dar, wie sie in die Pipeline fällt. Die ganzzahligen Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object sortiert die ganzzahligen Objekte in numerischer Reihenfolge.

Beispiel 9: Verwenden von stabilen Sortierungen

Wenn Sie die Parameter "Oben", "Unten" oder "Stable" verwenden, werden die sortierten Objekte in der Reihenfolge übermittelt, in Sort-Object der sie empfangen wurden, wenn die Sortierkriterien gleich sind. In diesem Beispiel sortieren wir die Zahlen 1 bis 20 nach dem Wert "modulo 3". Der Modulo-Wert reicht von Null bis 2.

1..20 |Sort-Object {$_ % 3}

18
3
15
6
12
9
1
16
13
10
7
4
19
11
8
14
5
17
2
20

1..20 |Sort-Object {$_ % 3} -Stable

3
6
9
12
15
18
1
4
7
10
13
16
19
2
5
8
11
14
17
20

Die Ausgabe aus der ersten Sortierung wird korrekt nach dem Moduluswert gruppiert, aber die einzelnen Elemente werden nicht innerhalb des Modulusbereichs sortiert. Die zweite Sortierung verwendet die Option "Stabil ", um eine stabile Sortierung zurückzugeben.

Beispiel 10: Sortieren nach mehreren Eigenschaften

Wenn Sie nach mehreren Eigenschaften sortieren möchten, trennen Sie die Eigenschaften nach Kommas.

Get-ChildItem -Path C:\Test | Sort-Object Length,Name

Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          13/10/2021    22:16              2 File01.txt
-a---          13/10/2021    22:16              2 File03.txt
-a---          13/10/2021    22:18             64 File02.txt
-a---          13/10/2021    22:18             64 File04.txt

Das Get-ChildItem Cmdlet ruft die Dateien aus dem Verzeichnis ab, das durch den Path-Parameter angegeben wird. Die Objekte werden an das Sort-Object Cmdlet gesendet. Sort-Object verwendet den Parameter "Length " und "Name ", um die Dateien in aufsteigender Reihenfolge nach Länge zu sortieren. Da File01.txt und File03.txt dieselbe Länge aufweisen, werden sie weiter nach ihrem Eigenschaftsnamen sortiert.

Beispiel 11: Sortieren von Hashtables nach Schlüsselwert

Ab PowerShell 6 Sort-Object unterstützt die Sortierung von Hashtable-Eingaben nach Schlüsselwerten. Im folgenden Beispiel wird ein Array von Hashtables nach dem Wert des Schlüssels weight der einzelnen Hashtables sortiert.

@(
    @{ name = 'a' ; weight = 7 }
    @{ name = 'b' ; weight = 1 }
    @{ name = 'c' ; weight = 3 }
    @{ name = 'd' ; weight = 7 }
) | Sort-Object -Property weight -OutVariable Sorted

$Sorted | ForEach-Object -Process { "{0}: {1}" -f $_.name, $_.weight }

Name                           Value
----                           -----
Weight                         1
Name                           b
Weight                         3
Name                           c
Weight                         7
Name                           a
Weight                         7
Name                           d

b: 1
c: 3
a: 7
d: 7

Parameter

-Bottom

Gibt die Anzahl der Objekte an, die vom Ende eines sortierten Objektarrays abgerufen werden sollen. Dies führt zu einer stabilen Sortierung.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Typ:Int32
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-CaseSensitive

Gibt an, dass bei der Sortierung die Groß-/Kleinschreibung beachtet wird. Bei Sortierungen wird standardmäßig keine Groß-/Kleinschreibung beachtet.

Typ:SwitchParameter
Position:Named
Standardwert:Case-insensitive
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Culture

Gibt die kulturelle Konfiguration an, die für Sortierungen verwendet werden soll. Wird Get-Culture verwendet, um die Systemkulturkonfiguration anzuzeigen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Descending

Gibt an, dass Sort-Object die Objekte in absteigender Reihenfolge sortiert werden. Standardmäßig wird in aufsteigender Reihenfolge sortiert.

Verwenden Sie eine Hashtabelle, um mehrere Eigenschaften mit unterschiedlichen Sortierreihenfolgen zu sortieren. Beispielsweise können Sie mit einer Hashtabelle eine Eigenschaft in aufsteigender Reihenfolge und eine andere Eigenschaft in absteigender Reihenfolge sortieren.

Typ:SwitchParameter
Position:Named
Standardwert:Ascending
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Um Objekte zu sortieren, senden Sie sie nach unten an die Pipeline an Sort-Object. Wenn Sie den InputObject-Parameter verwenden, um eine Auflistung von Elementen zu senden, empfängt ein Objekt, Sort-Object das die Auflistung darstellt. Da ein Objekt nicht sortiert werden kann, Sort-Object wird die gesamte Auflistung unverändert zurückgegeben.

Typ:PSObject
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Property

Gibt die Eigenschaftennamen an, die Sort-Object zum Sortieren der Objekte verwendet werden. Platzhalter sind zulässig. Objekte werden basierend auf den Eigenschaftswerten sortiert. Wenn Sie keine Eigenschaft angeben, Sort-Object werden sie basierend auf den Standardeigenschaften für den Objekttyp oder die Objekte selbst sortiert.

Verwenden Sie Kommas, um mehrere Eigenschaften zu trennen. Mehrere Eigenschaften können in aufsteigender Reihenfolge, absteigender Reihenfolge oder einer Kombination von Sortierreihenfolgen sortiert werden. Wenn Sie mehrere Eigenschaften angeben, werden die Objekte nach der ersten Eigenschaft sortiert. Wenn mehrere Objekte denselben Wert für die erste Eigenschaft haben, werden diese Objekte nach der zweiten Eigenschaft sortiert. Dieser Prozess wird fortgesetzt, bis keine weiteren angegebenen Eigenschaften oder keine Gruppen von Objekten mehr vorhanden sind.

Der Wert des Property-Parameters kann eine berechnete Eigenschaft sein. Verwenden Sie zum Erstellen einer berechneten Eigenschaft einen Scriptblock oder eine Hashtabelle.

Gültige Schlüssel für eine Hashtabelle sind wie folgt:

  • expression - <string> oder <script block>
  • ascending oder descending - <boolean>

Weitere Informationen finden Sie unter about_Calculated_Properties.

Typ:Object[]
Position:0
Standardwert:Default properties
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:True

-Stable

Die sortierten Objekte werden in der Reihenfolge geliefert, in der sie empfangen wurden, wenn die Sortierkriterien gleich sind.

Dieser Parameter wurde in PowerShell v6.2.0 hinzugefügt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Top

Gibt die Anzahl der Objekte an, die vom Anfang eines sortierten Objektarrays abgerufen werden sollen. Dies führt zu einer stabilen Sortierung.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Typ:Int32
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Unique

Gibt an, dass Sort-Object Duplikate entfernt werden und nur die eindeutigen Elemente der Auflistung zurückgegeben werden. Die erste Instanz eines eindeutigen Werts ist in der sortierten Ausgabe enthalten.

Eindeutig ist die Groß-/Kleinschreibung nicht zu beachten. Zeichenfolgen, die sich nur je nach Zeichenfall unterscheiden, werden als identisch betrachtet. Beispiel: Zeichen und ZEICHEN.

Typ:SwitchParameter
Position:Named
Standardwert:All
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSObject

Sie können die Objekte weiterleiten, die an dieses Cmdlet sortiert werden sollen.

Ausgaben

PSObject

Dieses Cmdlet gibt die sortierten Objekte zurück.

Hinweise

PowerShell enthält die folgenden Aliase für Sort-Object:

  • Windows:
    • sort

Das Sort-Object Cmdlet sortiert Objekte basierend auf eigenschaften, die im Befehl angegeben sind, oder die Standardsortiereigenschaften für den Objekttyp. Standardsortierungseigenschaften werden mithilfe des PropertySet benannten DefaultKeyPropertySet In einer types.ps1xml Datei definiert. Weitere Informationen finden Sie unter about_Types.ps1xml.

Wenn ein Objekt nicht über eine der angegebenen Eigenschaften verfügt, wird der Eigenschaftswert für dieses Objekt als Sort-Object Null interpretiert und am Ende der Sortierreihenfolge platziert.

Wenn keine Sortiereigenschaften verfügbar sind, versucht PowerShell, die Objekte selbst zu vergleichen. Sort-Object verwendet die Compare-Methode für jede Eigenschaft. Wenn eine Eigenschaft IComparable nicht implementiert, konvertiert das Cmdlet den Eigenschaftswert in eine Zeichenfolge und verwendet die Compare-Methode für System.String. Weitere Informationen finden Sie unter "PSObject.CompareTo(Object)"-Methode.

Wenn Sie nach einer aufgezählten Eigenschaft wie Status sortieren, Sort-Object werden die Enumerationswerte sortiert. Für Windows-Dienste weist "Stopped" den Wert 1 auf, und "Running" weist den Wert 4 auf. Beendet wird vor dem Ausführen aufgrund der aufgezählten Werte sortiert. Weitere Informationen finden Sie unter ServiceControllerStatus.

Die Leistung des Sortieralgorithmus ist bei einer stabilen Sortierung langsamer.