Gruppiert Objekte, die für die angegebenen Eigenschaften denselben Wert enthalten. (Group-Object)

   

NAME
Group-Object

# ÜBERSICHT
Gruppiert Objekte, die für die angegebenen Eigenschaften denselben Wert enthalten.

# SYNTAX
Group-Object [-AsHashTable] [-AsString] [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [-InputObject <psobject>] [-NoElement] [<CommonParameters>]

# BESCHREIBUNG
Mit dem Cmdlet "Group-Object" werden Objekte in Gruppen auf Grundlage des Werts einer angegebenen Eigenschaft angezeigt. Group-Object gibt eine Tabelle mit einer Zeile für jeden Eigenschaftenwert und einer Spalte zurück, in der die Anzahl der Elemente mit dem jeweiligen Wert angezeigt wird.

Wenn Sie mehrere Eigenschaften angeben, werden diese von Group-Object zunächst nach den Werten der ersten Eigenschaft und dann nach dem Wert der nächsten Eigenschaft innerhalb jeder Eigenschaftengruppe gruppiert.

# PARAMETER
-AsHashTable [<SwitchParameter>]
Gibt die Gruppe als Hashtabelle zurück. Die Schlüssel der Hashtabelle sind die Eigenschaftenwerte, nach denen die Objekte gruppiert werden. Die Werte der Hashtabelle sind die Objekte, die über den jeweiligen Eigenschaftenwert verfügen.

Mit dem AsHashTable-Parameter wird jede Hashtabelle zurückgegeben, in der jeder Schlüssel eine Instanz des gruppierten Objekts ist. Wenn der Parameter mit dem AsString-Parameter verwendet wird, sind die Schlüssel in der Hashtabelle Zeichenfolgen.

Erforderlich? false
Position? named
Standardwert GroupInfo-Objekt
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-AsString [<SwitchParameter>]
Konvertiert die Hashtabellenschlüssel in Zeichenfolgen. Standardmäßig sind die Hashtabellenschlüssel Instanzen des gruppierten Objekts. Dieser Parameter ist nur gültig, wenn er mit dem AsHashTable-Parameter verwendet wird.

Erforderlich? false
Position? named
Standardwert GroupInfo-Objekte
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-CaseSensitive [<SwitchParameter>]
Legt fest, dass für die Gruppierung die Groß-/Kleinschreibung berücksichtigt wird. Ohne diesen Parameter muss für die Eigenschaftenwerte von Objekten in einer Gruppe die Groß-Kleinschreibung nicht berücksichtigt werden.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Culture <string>
Gibt die Kultur an, die für Zeichenfolgenvergleiche verwendet werden soll.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-InputObject <psobject>
Gibt die zu gruppierenden Objekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

Wenn Sie eine Auflistung von Objekten mithilfe des InputObject-Parameters an Group-Object senden, empfängt Group-Object ein Objekt, das die Auflistung darstellt. Daher erstellt Group-Object eine einzelne Gruppe mit diesem Objekt als Mitglied.

Um die Objekte in einer Auflistung zu gruppieren, übergeben Sie die Objekte über die Pipeline an Group-Object.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?true (ByValue)
Platzhalterzeichen akzeptieren?false

-NoElement [<SwitchParameter>]
Lässt die Mitglieder einer Gruppe aus den Ergebnissen weg.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Property <Object[]>
Gibt die Eigenschaften für die Gruppierung an. Die Objekte werden auf Grundlage des Werts der angegebenen Eigenschaft in Gruppen angeordnet.

Bei dem Wert des Property-Parameters kann es sich um eine neu berechnete Eigenschaft handeln. Zum Erstellen einer berechneten Eigenschaft erstellen Sie eine Hashtabelle mit dem Schlüssel "Expression", der einen Zeichenfolgen- oder Skriptblockwert angibt.

Erforderlich? false
Position? 1
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

<CommonParameters>
Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug",
"ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable",
"OutBuffer" und "OutVariable". Weitere Informationen
erhalten Sie mit dem Befehl "get-help about_commonparameters".

# EINGABEN
System.Management.Automation.PSObject
Sie können jedes Objekt über die Pipeline an Group-Object übergeben.

# AUSGABEN
Microsoft.PowerShell.Commands.GroupInfo oder System.Collections.Hashtable
Wenn Sie den AsHashTable-Parameter verwenden, gibt Group-Object eine Hashtabelle zurück. Andernfalls wird ein GroupInfo-Objekt zurückgegeben.

# HINWEISE

Sie können Objekte auch mithilfe des GroupBy-Parameters der Formatierungs-Cmdlets (z. B. Format-Table [m2] und Format-List [m2]) gruppieren. Im Gegensatz zu Group-Object, das eine einzelne Tabelle mit einer Zeile für jeden Eigenschaftenwert erstellt, erstellen die GroupBy-Parameter eine Tabelle für jeden Eigenschaftenwert, mit einer Zeile für jedes Element, das über den Eigenschaftenwert verfügt.

Für Group-Object müssen die gruppierten Objekte nicht denselben Microsoft .NET Framework-Typ aufweisen. Wenn Objekte unterschiedlicher .NET Framework-Typen gruppiert werden, verwendet Group-Object die folgenden Regeln:

- Gleiche Eigenschaftennamen und Typen: Wenn die Objekte über eine Eigenschaft mit dem angegebenen Namen verfügen und die Eigenschaftenwerte den gleichen .NET Framework-Typ aufweisen, werden die Eigenschaftenwerte nach den gleichen Regeln wie Objekte des gleichen Typs gruppiert.

- Gleiche Eigenschaftennamen, unterschiedliche Typen: Wenn die Objekte über eine Eigenschaft mit dem angegebenen Namen verfügen, die Eigenschaftenwerte jedoch in verschiedenen Objekten unterschiedliche .NET Framework-Typen aufweisen, verwendet Group-Object den .NET Framework-Typ des ersten Vorkommens der Eigenschaft als .NET Framework-Typ für diese Eigenschaftengruppe. Wenn ein Objekt über eine Eigenschaft mit einem anderen Typ verfügt, wird der Eigenschaftenwert in den Typ für diese Gruppe konvertiert. Wenn die Typkonvertierung fehlschlägt, wird das Objekt nicht in die Gruppe eingeschlossen.

- Fehlende Eigenschaften: Objekte ohne eine angegebene Eigenschaft werden als nicht gruppierbar betrachtet. Nicht gruppierbare Objekte werden schließlich in der Ausgabe von GroupInfo-Objekten in der Gruppe "AutomationNull.Value" angegeben.

# BEISPIEL 1

C:\PS>get-childitem *.doc | group-object -property length

Beschreibung
-----------
Mit diesem Befehl werden die Dateien mit der Erweiterung ".doc" am aktuellen Speicherort abgerufen und nach Größe gruppiert.

# BEISPIEL 2

C:\PS>get-childitem | sort-object -property extension | group-object -property extension

Beschreibung
-----------
Mit diesem Befehl werden die Dateien am aktuellen Speicherort abgerufen, nach Dateinamenerweiterung sortiert und dann nach Dateinamenerweiterung gruppiert. Beachten Sie, dass die Dateien vor dem Gruppieren sortiert werden.

# BEISPIEL 3

C:\PS>1..35 | group-object -property {$_ % 2},{$_ % 3}

Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie Skriptblöcke als Wert des Property-Parameters verwendet werden.

Mit diesem Befehl werden die ganzen Zahlen von 1 bis 35 nach dem Rest bei Division durch 2 oder 3 gruppiert angezeigt.

# BEISPIEL 4

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | group-object -property eventID

Count Name Group
----- ---- -----
44 Information {System.Diagnostics.EventLogEntry,
5 Error {System.Diagnostics.EventLogEntry,
1 Warning {System.Diagnostics.EventLogEntry}

Beschreibung
-----------
Mit diesen Befehlen werden die letzten 1000 Einträge aus dem Systemereignisprotokoll nach Ereignis-ID gruppiert angezeigt.

Im ersten Befehl werden die Ereignisse mit dem Cmdlet "Get-EventLog" abgerufen und mit dem Zuweisungsoperator (=) in der Variablen "$events" gespeichert.

Im zweiten Befehl werden die Ereignisse in der Variablen "$events" mit einem Pipelineoperator (|) an das Cmdlet "Group-Object" gesendet. Mit dem Property-Parameter wird angegeben, dass die Ereignisse nach dem Wert ihrer EventID-Eigenschaft gruppiert werden sollen.

In der Ausgabe stellt die Spalte "Count" die Anzahl der Einträge in den einzelnen Gruppen, die Spalte "Name" die EventID-Werte, die jeweils eine Gruppe definieren, und die Spalte "Group" die Objekte in den einzelnen Gruppen dar.

# BEISPIEL 5

C:\PS>get-process | group-object -property priorityclass

Count Name Group
----- ---- -----
55 Normal {System.Diagnostics.Process (AdtAgent), System.Diagnostics.Process (alg), System.Dia...
1 {System.Diagnostics.Process (Idle)}
3 High {System.Diagnostics.Process (Newproc), System.Diagnostics.Process (winlogon), System.D...
2 BelowNormal {System.Diagnostics.Process (winperf),

C:\PS>get-process | group-object -property company -noelement
Count Name
----- ----
55 Normal
1
3 High
2 BelowNormal

Beschreibung
-----------
In diesem Beispiel werden die Auswirkungen des NoElement-Parameters veranschaulicht. Mit diesen Befehlen werden die Prozesse auf dem Computer nach Prioritätsklasse gruppiert.

Im ersten Befehl werden mit dem Cmdlet "Get-Process" die Prozesse auf dem Computer abgerufen. Die Ergebnisse werden mithilfe eines Pipelineoperators (|) an Group-Object gesendet, das die Objekte nach dem Wert der PriorityClass-Eigenschaft des Prozesses gruppiert.

Der zweite Befehl stimmt mit dem ersten Befehl überein, mit dem Unterschied, dass er die Mitglieder der Gruppe mithilfe des NoElement-Parameters aus der Ausgabe entfernt. Das Ergebnis ist eine Tabelle, die nur die Anzahl und den Namen des Eigenschaftenwerts enthält.

Die Ergebnisse werden in der folgenden Beispielausgabe gezeigt.

# BEISPIEL 6

C:\PS>get-eventlog -logname system -newest 1000 | group-object -property {$_.TimeWritten - $_.TimeGenerated}

Beschreibung
-----------
Der Befehl veranschaulicht, wie der Wert des Property-Parameters als Skriptblock angegeben wird.

Mit diesem Befehl werden die letzten 1000 Einträge aus dem Systemereignisprotokoll angezeigt, gruppiert nach der Zeitspanne zwischen dem Generieren und dem Schreiben der Einträge in das Protokoll.

In diesem Befehl werden mit dem Cmdlet "Get-EventLog" die Ereignisprotokolleinträge abgerufen. Die Einträge werden mit einem Pipelineoperator (|) an das Cmdlet "Group-Object" gesendet. Der Wert des Property-Parameters wird als Skriptblock (ein Ausdruck in geschweiften Klammern) angegeben. Das Ergebnis der Auswertung des Skriptblocks ist die Zeitspanne zwischen dem Generieren des Protokolleintrags und dem Schreiben des Eintrags in das Protokoll. Nach diesem Wert werden die letzten 1000 Ereignisse gruppiert.

# BEISPIEL 7

C:\PS>get-childitem | group-object extension -noelement

Count Name
----- ----
21
82 .txt
9 .cmd
5 .log
12 .xml
5 .htm
36 .ps1
1 .psc1
3 .exe
6 .csv
1 .psd1
2 .bat

Beschreibung
-----------
Mit diesem Befehl werden die Elemente im aktuellen Verzeichnis nach Dateinamenerweiterung gruppiert. Mithilfe des NoElement-Parameters werden die Mitglieder der Gruppe weggelassen.

Die Ergebnisse werden in der folgenden Beispielausgabe gezeigt.

# BEISPIEL 8

C:\PS>"a", "b", "c", "c", "d" | get-unique

a
b
c
d

C:\PS> "a", "b", "c", "c", "d" | group-object -noelement | where {$_.Count -gt 1}
Count Name
----- ----
2 c

C:\PS> get-process | group-object -property Name -noelement | where {$_.count -gt 1}
Count Name
----- ----
2 csrss
5 svchost
2 winlogon
2 wmiprvse

Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie die eindeutigen und nicht eindeutigen (mehrfach vorhandenen) Eigenschaftenwerte in einer Auflistung gesucht werden.

Im ersten Befehl werden die eindeutigen Elemente eines Arrays abgerufen, indem das Array über die Pipeline an das Cmdlet "Get-Unique" übergeben wird.

Im zweiten Befehl werden die nicht eindeutigen Elemente eines Arrays abgerufen. Das Array wird über die Pipeline an das Cmdlet "Group-Object" übergeben, das die Objekte nach Wert gruppiert. Die resultierenden Gruppen werden über die Pipeline an das Cmdlet "Where-Object" übergeben, das Objekte mit Gruppen auswählt, die mehrere Mitglieder enthalten.

Im dritten Befehl wird eine praktische Verwendung dieses Verfahrens veranschaulicht. Mit demselben Verfahren werden Prozesse auf dem Computer gesucht, die den gleichen Prozessnamen aufweisen.

Die Ergebnisse werden in der folgenden Beispielausgabe gezeigt.

# BEISPIEL 9

C:\PS>$a = get-command get-*, set-* -type cmdlet | group-object -property verb -ashashtable -asstring

C:\PS> $a

Name Value
---- -----
Get {Get-PSCallStack, Get-PSBreakpoint, Get-PSDrive, Get-PSSession...}
Set {Set-Service, Set-StrictMode, Set-PSDebug, Set-PSSessionConfiguration...}

C:\PS> $a.get

CommandType Name Definition
----------- ---- ----------
Cmdlet Get-PSCallStack Get-PSCallStack [-Verbose] [-Debug] [-ErrorAction <ActionPrefer...
Cmdlet Get-PSBreakpoint Get-PSBreakpoint [[-Id] <Int32[]>] [-Verbose] [-Debug] [-ErrorA...
Cmdlet Get-PSDrive Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider...
...

Beschreibung
-----------
In diesem Beispiel werden die Gruppen in einer Hashtabelle mithilfe des AsHashTable-Parameters und des AsString-Parameters als Auflistung von Schlüssel-Wert-Paaren zurückgegeben.

In der resultierenden Hashtabelle ist jeder Eigenschaftenwert ein Schlüssel, und die Gruppenelemente sind die Werte. Da jeder Schlüssel eine Eigenschaft des Hashtabellenobjekts ist, können Sie die Werte mithilfe der punktierten Notation anzeigen.

Im ersten Befehl werden die Get-Cmdlets und Set-Cmdlets in der Sitzung abgerufen und nach Verb gruppiert, die Gruppen werden als Hashtabelle zurückgegeben, und die Hashtabelle wird in der Variablen "$a" gespeichert.

Im zweiten Befehl wird die Hashtabelle in $a angezeigt. Es gibt zwei Schlüssel-Wert-Paare - eines für die Get-Cmdlets und eines für die Set-Cmdlets.

Im dritten Befehl werden die Werte des Get-Schlüssels in $a mithilfe der punktierten Notation angezeigt. Die Werte sind CmdletInfo-Objekte. Der AsString-Parameter konvertiert die Objekte in den Gruppen nicht in Zeichenfolgen.

VERWANDTE LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113338 (möglicherweise auf Englisch)

C:\Windows>powershell get-help Sort-Object -full

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.

OS: Windows-10 / Windows-8.1 & 8 / Windows-7 & Vista / Windows Server 2008-2016
»»»» ColorConsole



 


... Home  
... Impressum
... ColorConsole

... CMD
... Netsh-XP
... Netsh-7
... Netsh-Vista
... Powershell









Windows 7 download: Starter, Home (Basic Premium), Professional und Win 7 Ultimate!

... facebook.de
0.124
Quick dock and compare the windows under Windows 8.1 / 10!  / Habe ein Problem mit der Facebook.de Pinnwand, meine Freunde habe ich blockiert, wie kann ich diese wieder für meine Pinnwand freischalten?  / Enable screen saver password in Windows 10, how to turn off?  / Freigegebene Ordner und Festplatten in Windows-7 ändern, hinzufügen, entfernen!  / Office 2003 installiert, alles funktioniert in Win-7, aber Outlook 2003 nicht?  / Kann man in Windows 8.1/10 das automatische Ausklappen des Verzeichnisbaumes in MS-Explorer deaktivieren?  / My Magazin vom Start (Homescreen) am Android Handy entfernen!  / Was ist ein Bootmanager?  / Kann man die Windows 7 Indizierung deaktivieren, bzw. anpassen?  / I would like to see the full name of the folder in the tab!  / Was sind die Vorteile und Nachteile von exFat bei Windows-7, oder Vista?  / Internet Explorer 10 oder 11 als Standardbrowser in Windows-8 und 8.1 (definieren, einsetzen)?  /