Skip to the main content.

PowerShell-Erfolgsrezepte – die Profi-Tipps für effektives Scripting

Ordnung in PowerShell-Objekten: entferne automatisch leere Properties

Tobias & Alexandars Tipp:


Müde, sich durch leere Eigenschaften in PowerShell-Objekten zu wühlen? PowerShell-Objekte sind oft voll von leeren Properties, die deine Übersicht stören. Mit der versteckten PSObject-Erweiterung kannst du jedoch eine einfache Filterfunktion nutzen, um nur gefüllte Eigenschaften, also populated properties, anzuzeigen. So sparst du Zeit und siehst sofort die relevanten Daten – ideal, wenn du präzise und effizient arbeiten willst! Perfekt für die Optimierung von Datenansichten ohne manuelle Eingriffe.

 

Leere Eigenschaften filtern

Gelegentlich erhält man Objekte mit vielen leeren Eigenschaften, an denen man nicht wirklich interessiert ist. Du kannst Select-Object verwenden, um Eigenschaften manuell auszuwählen, aber wenn sich die leeren Eigenschaften ändern, wäre eine automatisierte Lösung hilfreich.

Glücklicherweise fügt PowerShell jedem Objekt eine geheime PSObject -Erweiterung hinzu, die die gesamte Objektstruktur, einschließlich der Eigenschaften und ihrer Werte, offenlegt. Auf diese Weise würde eine einfache Filterfunktion wie folgt aussehen:


filter Filter-EmptyProperty
{
   $hashtable = [Ordered]@{}
   foreach ($property in $_.PSObject.Properties)
   {
      if ($property.Value)
      {
         $hashtable[$property.Name]=$property.Value
      }
   }
   [PSCustomObject]$hashtable


Im Wesentlichen werden für jedes Objekt alle seine Eigenschaften auf einen Wert geprüft, und nur wenn ein Wert gefunden wird, wird die Eigenschaft zu einer geordneten Hashtabelle hinzugefügt. Sobald alle gewünschten Eigenschaften gesammelt wurden, wird die geordnete Hash-Tabelle in ein Objekt umgewandelt und ausgegeben.

Teste diese Befehle (oder jeden anderen Quellbefehl, der leere Eigenschaften zurückgibt):


# enthält leere Eigenschaften
Get-ComputerInfo -Property *

# zeigt nur gefüllte Eigenschaften an
Get-ComputerInfo -Eigenschaft * | Filter-EmptyProperty 

 

 

Good2know

Dein ultimativer PowerShell-Spickzettel

Entfessele das volle Potenzial von PowerShell mit unserem praktischen Poster. Egal, ob frischer Einsteiger oder erfahrener Profi, dieser Spickzettel ist so konzipiert, dass du schnell die wichtigsten und am häufigsten verwendeten Cmdlets findest.

Das Poster ist zum Download und in Papierform erhältlich.

PowerShell Poster 2023

Hol dir hier dein Poster!

 

 

Weiterführende Links 

 

Zusammenhängende Posts

3 min read

Skriptabbruch verhindern: PowerShell-Fehler clever behandeln

Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...

3 min read

Stelle Fehlern eine Falle! Mit der Trap-Anweisung Terminating Errors abfangen

Du bist mit try...catch vertraut? Exceptions kannst du mit Trap-Anweisungen behandeln. Kurz und knackig kommt hier der...

5 min read

Mehr Ordnung in PowerShell: lagere Konfigurationsdaten einfach aus

Verabschiede dich von fest codierten Pfaden und Einstellungen! Vereinfache deine PowerShell-Skripte, indem du...

Über den Autor: