PowerShell – Filtering your PowerShell outputs using Where-Object and Select-Object

When working with PowerShell and using a (get-command | fl or format-list) you will receive a whole list of information which sometimes can be difficult to digest as shown below. In most cases normally you are only after one or two pieces of key information.

Using Select-Object

Select-Object is a great command when filtering PowerShell output by a particular property example Get-Service and Name/Status

# Command
Get-Service | Select-Object -Property Name,Status

Get-Service | Select-Object -Property Name,Status

This command isnt limited to just Get-Service and can be used across all Microsoft workloads for example you wanted to see UserPrincipleName and O365 licence, Select-Object can help you achieve that.

Using Where-Object

Where-Object is a powerful option when filtering PowerShell output by a particular value, for example, Get-Service state based on stopped services

# Command

Get-Service | select -Property Name,Status | where {$_.Status -like 'Stopped'}
Get-Service | select -Property Name,Status | where {$_.Status -like ‘Stopped’}

Where-Object doesn’t just stop there, what if you just wanted all the Stopped Service begining with the letter C?

# Command

Get-Service | select -Property Name,Status | where {($_.Name -like 'C*') -and ($_.Status -like 'Stopped')
Get-Service | select -Property Name,Status | where {($_.Name -like ‘C*’) -and ($_.Status -like ‘Stopped’)}

Again where-object isnt just limited to this command, I have just both commands in PowerShell scripts I have written for a customer to achieve a desired state.

Now go and try this commands within on your computer or organisation and see what you automate.

Regards
The Author – Blogabout.Cloud