Powershell - Overview of Where-Object basic syntax and its limitations
To support me, you can subscribe to the channel, share and like the videos, disable your ad blocker or make a donation. Thank you!
The basic/simplified syntax that appeared with Windows Powershell 3 is easier to understand but more limited than the standard/advanced syntax.
In my tests, it is also slightly faster in Powershell 7 (7.4.4) and slower in Windows Powershell 5.1.
# Standard/Advanced SyntaxGet-Service | Where-Object -FilterScript { $_.Status -eq ‘running’ }
# Basic/simplified syntaxGet-Service | Where-Object -Property Status -eq ‘running’ }
# But they are most often seen in this form (without the argument after Where-Object)Get-Service | Where-Object { $_.Status -eq ‘running’ }Get-Service | Where-Object Status -eq ‘running’ }
But the basic syntax has a few limitations.
The basic syntax can only be used for a single comparison.
# This syntax does not workGet-Service | Where-Object -Property Status -eq ‘running’ -and StartType -eq ‘Automatic’
# You need to use the standard syntaxGet-Service | Where-Object -FilterScript {$_.Status -eq ‘running’ -and $_.StartType -eq ‘Automatic’}
Related links
Powershell - Testing network connectivity and port accessibility
Testing network connectivity and port accessibility with PowershellPowershell - Display network connections (equivalent to netstat)
Display network connections (listening ports, active connections...)Powershell - Testing name resolution (equivalent to nslookup)
Powershell commands to test name resolution (equivalent to nslookup)Powershell - View and manage DNS configuration of network interfaces
Powershell commands to display and manage DNS configuration of network interfacesPowershell - Managing IP configuration of network interfaces
Powershell commands to view and modify the IP configuration of network interfacesPowershell - Managing the status and configuration of network interfaces
Powershell commands to view and modify the status and configuration of network interfaces (disable IPv6, enable/disable an interface)
Follow me on
Support me
Last content
Powershell - Testing network connectivity and port accessibility
Powershell - Display network connections (equivalent to netstat)
Powershell - Testing name resolution (equivalent to nslookup)
Powershell - View and manage DNS configuration of network interfaces
Powershell - Managing IP configuration of network interfaces
Powershell - Managing the status and configuration of network interfaces
Powershell and the Left Hand Side
Powershell - Managing disks, partitions and volumes