Bird
Raised Fist0
PowerShellscripting~10 mins

Group-Object for categorization in PowerShell - Interactive Code Practice

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

Complete the code to group processes by their name.

PowerShell
Get-Process | Group-Object -Property [1]
Drag options to blanks, or click blank then click option'
AName
BCPU
CId
DPath
Attempts:
3 left
💡 Hint
Common Mistakes
Using Id groups by process ID, which is unique for each process.
2fill in blank
medium

Complete the code to count how many processes are in each group.

PowerShell
Get-Process | Group-Object -Property Name | Select-Object Name, [1]
Drag options to blanks, or click blank then click option'
ASize
BLength
CCount
DTotal
Attempts:
3 left
💡 Hint
Common Mistakes
Using Length or Size which do not exist on group objects.
3fill in blank
hard

Fix the error in the code to group services by status.

PowerShell
Get-Service | Group-Object -Property [1]
Drag options to blanks, or click blank then click option'
AStatus
BServiceName
CDisplayName
DName
Attempts:
3 left
💡 Hint
Common Mistakes
Using ServiceName groups by unique names, not status.
4fill in blank
hard

Fill both blanks to group processes by CPU usage and select the group name and count.

PowerShell
Get-Process | Group-Object -Property [1] | Select-Object [2], Count
Drag options to blanks, or click blank then click option'
ACPU
BName
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the properties for grouping and selecting.
5fill in blank
hard

Fill all three blanks to group services by status, select the group name, count, and the first service's display name.

PowerShell
Get-Service | Group-Object -Property [1] | Select-Object [2], Count, @{Name='FirstService';Expression={$_.Group[[3]].DisplayName}}
Drag options to blanks, or click blank then click option'
AStatus
BName
C0
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong index for the first service or wrong property names.

Practice

(1/5)
1. What does the PowerShell cmdlet Group-Object do?
easy
A. It deletes duplicate objects.
B. It sorts objects alphabetically.
C. It groups objects based on a property value.
D. It converts objects to strings.

Solution

  1. Step 1: Understand the purpose of Group-Object

    The cmdlet groups input objects by a specified property value, organizing them into categories.
  2. Step 2: Compare options with the cmdlet's function

    Only It groups objects based on a property value. correctly describes grouping by property value; others describe different actions.
  3. Final Answer:

    It groups objects based on a property value. -> Option C
  4. Quick Check:

    Group-Object groups by property [OK]
Hint: Group-Object categorizes by property value, not sorting or deleting [OK]
Common Mistakes:
  • Confusing grouping with sorting
  • Thinking it removes duplicates
  • Assuming it converts data types
2. Which of the following is the correct syntax to group processes by their ProcessName property?
easy
A. Get-Process | Group-Object -Property ProcessName
B. Get-Process | Group-Object -ProcessName
C. Get-Process | Group-Object -Name ProcessName
D. Get-Process | Group-Object /Property ProcessName

Solution

  1. Step 1: Identify correct parameter for grouping property

    The correct parameter is '-Property' to specify the property to group by.
  2. Step 2: Check syntax correctness

    Get-Process | Group-Object -Property ProcessName uses the correct syntax: 'Group-Object -Property ProcessName'. Options A and C use wrong parameter names; D uses invalid syntax.
  3. Final Answer:

    Get-Process | Group-Object -Property ProcessName -> Option A
  4. Quick Check:

    Use '-Property' to specify grouping property [OK]
Hint: Use '-Property' to specify grouping key in Group-Object [OK]
Common Mistakes:
  • Omitting the dash before 'Property'
  • Using '-Name' instead of '-Property'
  • Using invalid syntax like slashes
3. What will be the output count of groups when running this command?
Get-Process | Group-Object -Property CPU | Measure-Object | Select-Object -ExpandProperty Count

Assuming multiple processes share the same CPU time value.
medium
A. The number of CPU cores on the machine.
B. The total number of processes running.
C. Always 1 because CPU is a single value.
D. The number of unique CPU time values among processes.

Solution

  1. Step 1: Understand Group-Object output

    Group-Object groups items by unique values of the specified property, here 'CPU'.
  2. Step 2: Interpret Measure-Object Count

    Measure-Object counts how many groups were created, which equals the number of unique CPU values among processes.
  3. Final Answer:

    The number of unique CPU time values among processes. -> Option D
  4. Quick Check:

    Group count = unique property values [OK]
Hint: Group count equals unique property values, not total items [OK]
Common Mistakes:
  • Confusing group count with total items
  • Assuming CPU property is always unique
  • Thinking it relates to CPU cores
4. You run this command but get an error:
Get-Service | Group-Object -Property

What is the most likely cause?
medium
A. Missing property name after -Property parameter.
B. Get-Service does not output objects.
C. Group-Object cannot group services.
D. The pipeline operator '|' is missing.

Solution

  1. Step 1: Check the command syntax

    The '-Property' parameter requires a property name to group by, which is missing here.
  2. Step 2: Validate other options

    Get-Service outputs objects, Group-Object can group them, and the pipeline operator is present, so these are not causes.
  3. Final Answer:

    Missing property name after -Property parameter. -> Option A
  4. Quick Check:

    Always specify property name after '-Property' [OK]
Hint: Always provide property name after '-Property' [OK]
Common Mistakes:
  • Leaving '-Property' without a value
  • Assuming Get-Service outputs text only
  • Thinking Group-Object can't group services
5. You want to group a list of files by their extension and count how many files each extension has. Which command correctly achieves this?
hard
A. Get-ChildItem | Group-Object -Property Name | Select-Object Extension, Count
B. Get-ChildItem | Group-Object -Property Extension | Select-Object Name, Count
C. Get-ChildItem | Group-Object -Property Length | Select-Object Extension, Count
D. Get-ChildItem | Group-Object -Property FullName | Select-Object Extension, Count

Solution

  1. Step 1: Identify property to group files by extension

    The 'Extension' property holds the file extension, so grouping by it categorizes files by type.
  2. Step 2: Select correct output properties

    Selecting 'Name' (the group name, i.e., extension) and 'Count' shows the extension and how many files have it.
  3. Final Answer:

    Get-ChildItem | Group-Object -Property Extension | Select-Object Name, Count -> Option B
  4. Quick Check:

    Group by Extension, select Name and Count [OK]
Hint: Group by Extension, then select Name and Count to see totals [OK]
Common Mistakes:
  • Grouping by Name instead of Extension
  • Selecting wrong properties after grouping
  • Grouping by file size or full path mistakenly
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