One of the key factor of PowerShell which made it most popular and successful Scripting language for management id the ability to process and handle everything as Objects and passing them throughout the pipeline .
Yes, The Pipeline. Lets check with an example.
Here,we Have the services in My Computer which are currently running.
We used Where-Object cmdlet to select only Running Services and -FilteScript Parameter to filter the output of Get-Service cmdlet from the pipeline. The criteria given is {$_.Status -eq 'Running'} .
Lets have a look, why " $_.Status " .
PowerShell cmdlets returns output in the form of table(based on Formatting conditions) . We can See Table headrers , Rows , Colums etc .

Here $ is the output from Get-Service cmdlet , $_ represents each row in that output and $_.Status represent a row at a time but only the value for Status . Here " . " represents a fraction of that row.
Yes, The Pipeline. Lets check with an example.
PS C:\>Get-Service | Where-Object -FilterScript {$_.Status -eq 'Running'}
Status Name DisplayName
------ ---- -----------
Running ALG Application Layer Gateway Service
Running AppHostSvc Application Host Helper Service
Running Appinfo Application Information
Running AudioEndpointBu... Windows Audio Endpoint Builder
Running Audiosrv Windows Audio
Running BFE Base Filtering Engine
Running BITS Background Intelligent Transfer Ser...
Running BrokerInfrastru... Background Tasks Infrastructure Ser...
Running Browser Computer Browser
Running CertPropSvc Certificate Propagation
Running ClipSVC Client License Service (ClipSVC)
Running CoreMessagingRe... CoreMessaging
Running CryptSvc Cryptographic Services
Running CscService Offline Files
Running CxAudMsg Conexant Audio Message Service
Running DcomLaunch DCOM Server Process Launcher
Running DeviceAssociati... Device Association Service
Running Dhcp DHCP Client
Running DiagTrack Diagnostics Tracking Service
Running Dnscache DNS Client
Running DPS Diagnostic Policy Service
Running DsmSvc Device Setup Manager
Running DsSvc Data Sharing Service
Running EFS Encrypting File System (EFS)
Running EventLog Windows Event Log
Running EventSystem COM+ Event System
Here,we Have the services in My Computer which are currently running.
We used Where-Object cmdlet to select only Running Services and -FilteScript Parameter to filter the output of Get-Service cmdlet from the pipeline. The criteria given is {$_.Status -eq 'Running'} .
Lets have a look, why " $_.Status " .
PowerShell cmdlets returns output in the form of table(based on Formatting conditions) . We can See Table headrers , Rows , Colums etc .

Here $ is the output from Get-Service cmdlet , $_ represents each row in that output and $_.Status represent a row at a time but only the value for Status . Here " . " represents a fraction of that row.
Finally we got Only running services, PowerShell Parser takes each Row in that Table and will select status for each service then do an IncaseSensitive comparision using operator -eq to mach the string Running.
