Tired of wading through empty properties in PowerShell objects? Learn how to filter out unnecessary blanks automatically! With PowerShell's PSObject extension, you can create a custom function to display only populated properties keeping your results clean and relevant. Perfect for streamlining data views without manual tweaks!

Tobias & Aleksandar's tip:

Filter empty properties

Occasionally, you receive objects with a lot of empty properties that you are not really interested in. You could use Select?Object to manually select properties, but if the empty properties change, an automated solution would be helpful.

Fortunately, PowerShell adds a secret PSObject extension to each object that reveals the entire object structure, including properties and their values. This way, a simple filter function would look like this:

filter Filter-EmptyProperty

{

   $hashtable = [Ordered]@{}

   foreach ($property in $_.PSObject.Properties)

   {

      if ($property.Value)

      {

         $hashtable[$property.Name]=$property.Value

      }

   }

   [PSCustomObject]$hashtable

In essence, for each object, all of its properties are checked for a value, and only if a value is found, then the property is added to an ordered hash table. Once all desired properties have been collected, the ordered hash table is turned to an object and emitted.

Try these commands (or any other source command that returns empty properties):

# includes empty properties

Get-ComputerInfo -Property *



# shows only populated properties

Get-ComputerInfo -Property * | Filter-EmptyProperty  

Your ultimate PowerShell Cheat Sheet

Unleash the full potential of PowerShell with our handy poster. Whether you're a beginner or a seasoned pro, this cheat sheet is designed to be your go-to resource for the most important and commonly used cmdlets.The poster is available for download and in paper form.

Get your poster here!

Related links