PowerShell Genie

List service names beginning with W 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

Preview the example. Sign in for the full lesson and activities.

Get-Service -Name 'W*' | Sort-Object Name | Select-Object -ExpandProperty Name

Target

Return the Name values of every service whose name begins with W, sorted alphabetically. Include stopped services.

Expected result

W32Time, WinRM, wuauserv

Try the task

Show a worked solution
Reveal one approach
1PS> Get-Service -Name 'W*' | Sort-Object Name | Select-Object -ExpandProperty Name

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 · Sorting · Selection · Wildcard matching

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 -Name 'W*'

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

Shape

Sort-Object Name

Apply the condition or ordering required by the task. Use the Name wildcard, sort the matches, then expand the Name property.

Verify

Check order and returned names

The fixture should return W32Time, WinRM, wuauserv. Order matters for this exercise.

Reason through the pipeline

The source stage returns 7 service objects. Then the pipeline applies Sort-Object Name, Select-Object -ExpandProperty Name 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 select the first rows before sorting when the task asks for a highest, lowest, first, or reverse-ordered result. Use Select-Object after the important filtering or ordering work; selecting too early can discard properties needed by later stages.

What the checker accepts

The evaluator runs the supported subset against the same fictional fixture. It expects W32Time, WinRM, wuauserv. The returned order is part of the answer. Equivalent supported syntax is accepted.

Verify another attempt

First run Get-Service -Name 'W*' 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 guideList service names beginning with W in PowerShell

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