Bird
Raised Fist0
PowerShellscripting~10 mins

Why cmdlets are the building blocks in PowerShell - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to list all services using a cmdlet.

PowerShell
Get-[1]
Drag options to blanks, or click blank then click option'
AProcesses
BService
CItems
DContent
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'Get-Process' instead of 'Get-Service' when listing services.
Using 'Get-Content' which reads file content, not services.
2fill in blank
medium

Complete the code to stop a service named 'Spooler' using a cmdlet.

PowerShell
Stop-[1] -Name Spooler
Drag options to blanks, or click blank then click option'
AProcess
BItem
CContent
DService
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'Stop-Process' which stops a process, not a service.
Using 'Stop-Item' which deletes files or folders, not services.
3fill in blank
hard

Fix the error in the code to get the status of the 'Spooler' service.

PowerShell
Get-Service -Name [1]
Drag options to blanks, or click blank then click option'
AspoolerService
Bspooler
CSpooler
DSPOOLER
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect service names like 'spoolerService' which does not exist.
Using all lowercase which might still work but is less standard.
4fill in blank
hard

Fill both blanks to create a cmdlet that gets all running services and sorts them by name.

PowerShell
Get-Service | Where-Object [1] -eq 'Running' | Sort-Object [2]
Drag options to blanks, or click blank then click option'
A-Property
BStatus
CName
D-Name
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-Property' in Where-Object which is incorrect syntax.
Sorting by 'Status' instead of 'Name'.
5fill in blank
hard

Fill all three blanks to create a hashtable of service names and their statuses for services starting with 'Win'.

PowerShell
$services = @{}; foreach([3] in (Get-Service | Where-Object Name -like 'Win*')) { $services[[3].[1]] = [3].[2] }
Drag options to blanks, or click blank then click option'
AName
BStatus
C$service
Dsvc
Attempts:
3 left
💡 Hint
Common Mistakes
Using variable names not defined in the loop.
Swapping keys and values in the hashtable.

Practice

(1/5)
1. What is a key reason cmdlets are considered the building blocks in PowerShell scripting?
easy
A. They replace the need for variables in scripts.
B. They are graphical tools for designing scripts.
C. They perform a single, specific task very well.
D. They automatically fix errors in scripts.

Solution

  1. Step 1: Understand cmdlet purpose

    Cmdlets are designed to do one task clearly and efficiently.
  2. Step 2: Recognize their role in scripting

    This single-task focus makes them reliable building blocks for automation.
  3. Final Answer:

    They perform a single, specific task very well. -> Option C
  4. Quick Check:

    Cmdlets = single task focus [OK]
Hint: Cmdlets do one job well, like tools in a toolbox [OK]
Common Mistakes:
  • Thinking cmdlets are graphical tools
  • Believing cmdlets fix script errors automatically
  • Assuming cmdlets replace variables
2. Which of the following is the correct syntax for a PowerShell cmdlet?
easy
A. Get-Process
B. process-get
C. GetProcess
D. Get_Process

Solution

  1. Step 1: Recall cmdlet naming style

    Cmdlets use a verb-noun format separated by a dash.
  2. Step 2: Match options to format

    Only 'Get-Process' follows verb-noun with dash correctly.
  3. Final Answer:

    Get-Process -> Option A
  4. Quick Check:

    Verb-Noun with dash = Get-Process [OK]
Hint: Cmdlets always use Verb-Noun with a dash [OK]
Common Mistakes:
  • Using camelCase or underscores
  • Reversing noun and verb order
  • Omitting the dash between verb and noun
3. What will be the output of this PowerShell command?
Get-Process | Where-Object { $_.CPU -gt 100 }
medium
A. Shows an error because CPU is not a valid property.
B. Lists all processes using less than 100 CPU seconds.
C. Lists all processes regardless of CPU usage.
D. Lists all processes using more than 100 CPU seconds.

Solution

  1. Step 1: Understand the pipeline

    Get-Process gets all processes; Where-Object filters them.
  2. Step 2: Analyze the filter condition

    It selects processes where CPU time is greater than 100 seconds.
  3. Final Answer:

    Lists all processes using more than 100 CPU seconds. -> Option D
  4. Quick Check:

    CPU > 100 filters processes correctly [OK]
Hint: Where-Object filters output by condition [OK]
Common Mistakes:
  • Confusing greater than with less than
  • Assuming CPU is invalid property
  • Ignoring the filter and expecting all processes
4. Identify the error in this PowerShell command:
Get-Process | Where-Object { $_.cpu -gt 100 }
medium
A. There is no error in the command.
B. The pipe symbol '|' is used incorrectly here.
C. Where-Object cannot filter numeric properties.
D. The property name 'cpu' is case-sensitive and should be 'CPU'.

Solution

  1. Step 1: Check property names in PowerShell

    Property names are case-insensitive in PowerShell, so 'cpu' works.
  2. Step 2: Verify other parts

    Pipe usage and braces are correct; Where-Object filters numeric properties fine.
  3. Step 3: Reconsider case sensitivity

    Actually, property names are not case-sensitive, so no error here.
  4. Final Answer:

    There is no error in the command. -> Option A
  5. Quick Check:

    Property names are case-insensitive [OK]
Hint: PowerShell property names ignore case [OK]
Common Mistakes:
  • Thinking property names are case-sensitive
  • Misunderstanding pipe usage
  • Assuming missing braces
5. You want to automate a task that lists all services, filters only running ones, and sorts them by name. Which combination of cmdlets achieves this?
hard
A. Get-Service -Status Running | Sort-Object -Property Status
B. Get-Service | Where-Object { $_.Status -eq 'Running' } | Sort-Object Name
C. Get-Process | Where-Object { $_.Status -eq 'Running' } | Sort-Object Name
D. Get-Service | Sort-Object Status | Where-Object { $_.Status -eq 'Running' }

Solution

  1. Step 1: Identify cmdlet to get services

    Get-Service retrieves all services.
  2. Step 2: Filter running services correctly

    Where-Object filters services where Status equals 'Running'.
  3. Step 3: Sort filtered services by name

    Sort-Object sorts the filtered list by the Name property.
  4. Final Answer:

    Get-Service | Where-Object { $_.Status -eq 'Running' } | Sort-Object Name -> Option B
  5. Quick Check:

    Filter then sort = Get-Service | Where-Object { $_.Status -eq 'Running' } | Sort-Object Name [OK]
Hint: Filter first, then sort for correct results [OK]
Common Mistakes:
  • Filtering after sorting loses efficiency
  • Using Get-Process instead of Get-Service
  • Sorting by wrong property
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard