PowerShell Genie

Find stopped services in PowerShell

Exercise 2 min read Windows PowerShell 5.1 and PowerShell 7

Documentation: Microsoft Learn

Write a pipeline, run it against the sample data, and check your result.

An example to inspect

Read the example, then complete the activity below. All lessons are public. Sign-in is optional for progress sync.

Get-Service | Where-Object Status -eq 'Stopped'

Target

Return every stopped service from the sample machine.

Expected result

WinRM

Try the task

Show a worked solution
Reveal one approach
1PS> Get-Service | Where-Object Status -eq 'Stopped'

Try it in the lab

Write your pipeline below and run it against the fictional sample data, then check your result against the expected answer.

Interactive simulation · fictional data

PowerShell skills

Service objects · Filtering

Build the answer in three decisions

Read the pipeline from left to right. Each stage receives objects from the stage before it.

Collect

Get-Service

Start with 7 fictional service objects. Keep them as objects so later stages can inspect their properties.

Shape

Where-Object Status -eq 'Stopped'

Apply the condition or ordering required by the task. Filter the Status property with Where-Object. The expected status is Stopped.

Verify

Check the returned names

The fixture should return WinRM. For this exercise, equivalent matching names can pass even when their order is different.

Reason through the pipeline

The source stage returns 7 service objects. Then the pipeline applies Where-Object Status -eq 'Stopped' without converting the objects to display text. That keeps the Name property available for the checker and for any later pipeline stage.

Why common attempts fail

Do not hard-code the expected names; express the filter against an object property so the pipeline still makes sense when the fixture changes.

What the checker accepts

The evaluator runs the supported subset against the same fictional fixture. It expects WinRM. The checker compares the matching names without requiring a specific order. Equivalent supported syntax is accepted.

Verify another attempt

First run Get-Service by itself and inspect the fixture. Then add one stage at a time and compare how many objects remain. This isolates the stage that changes the result and makes the final pipeline easier to explain and debug.

Primary documentation

PowerShell pipeline behavior

Next exercise
Genie guideFind stopped services in PowerShell

Write a pipeline, run it against the sample data, and check your result.