Bird
Raised Fist0
PowerShellscripting~20 mins

Command discovery (Get-Command) in PowerShell - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PowerShell Command Discovery Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
What is the output of this PowerShell command?
Consider the command:
Get-Command -Name Get-Process

What type of command does this return?
PowerShell
Get-Command -Name Get-Process | Select-Object -ExpandProperty CommandType
ACmdlet
BFunction
CAlias
DApplication
Attempts:
2 left
💡 Hint
Think about what kind of command 'Get-Process' is in PowerShell.
💻 Command Output
intermediate
1:30remaining
What does this command output?
What is the output of:
Get-Command -Verb Get | Select-Object -First 1 -ExpandProperty Name
PowerShell
Get-Command -Verb Get | Select-Object -First 1 -ExpandProperty Name
AGet-Content
BGet-Acl
CGet-Item
DGet-Process
Attempts:
2 left
💡 Hint
The commands are sorted alphabetically by default.
🔧 Debug
advanced
2:00remaining
Why does this command fail?
This command is intended to find all commands with the noun 'Service':
Get-Command -Noun Service*

But it returns an error. Why?
PowerShell
Get-Command -Noun Service*
AThe correct parameter is -Name, not -Noun.
BThe -Noun parameter does not accept wildcards.
CGet-Command does not support filtering by noun.
DThe wildcard should be in quotes: 'Service*'.
Attempts:
2 left
💡 Hint
Think about how PowerShell treats wildcards in parameters.
🧠 Conceptual
advanced
2:00remaining
Which command lists all aliases starting with 'g'?
You want to list all aliases whose names start with the letter 'g'. Which command will do this?
AGet-Command -CommandType Alias | Where-Object Name -like 'g*'
BGet-Alias -Name g*
CGet-Command -CommandType Alias -Name g*
DGet-Command -Alias g*
Attempts:
2 left
💡 Hint
Get-Command can filter by command type and name pattern.
🚀 Application
expert
2:30remaining
How many cmdlets have the noun 'Item'?
Using Get-Command, how many cmdlets have the noun exactly 'Item'?
PowerShell
Get-Command -CommandType Cmdlet -Noun Item | Measure-Object | Select-Object -ExpandProperty Count
A5
B3
C7
D10
Attempts:
2 left
💡 Hint
Use Get-Command with -Noun and count the results.

Practice

(1/5)
1. What is the main purpose of the Get-Command cmdlet in PowerShell?
easy
A. To execute a command immediately
B. To create a new command
C. To stop a running command
D. To find and list commands available in PowerShell

Solution

  1. Step 1: Understand the role of Get-Command

    Get-Command is used to discover commands available in PowerShell, helping users find what commands they can run.
  2. Step 2: Differentiate from other cmdlets

    It does not execute, stop, or create commands; it only lists and finds them.
  3. Final Answer:

    To find and list commands available in PowerShell -> Option D
  4. Quick Check:

    Get-Command lists commands = B [OK]
Hint: Get-Command lists commands, not runs or stops them [OK]
Common Mistakes:
  • Thinking Get-Command runs commands
  • Confusing Get-Command with Stop-Process
  • Assuming it creates commands
2. Which of the following is the correct syntax to find all commands that start with 'Get-' using Get-Command?
easy
A. Get-Command "Get-"
B. Get-Command -Filter "Get-"
C. Get-Command -Name "Get-*"
D. Get-Command -Search "Get-*"

Solution

  1. Step 1: Identify correct parameter for name filtering

    The -Name parameter accepts wildcards like "Get-*" to find commands starting with 'Get-'.
  2. Step 2: Check other options for correctness

    -Filter is not a valid parameter for Get-Command, and -Search does not exist. Passing just "Get-" without wildcard won't match all commands starting with 'Get-'.
  3. Final Answer:

    Get-Command -Name "Get-*" -> Option C
  4. Quick Check:

    Use -Name with wildcard = C [OK]
Hint: Use -Name with wildcard pattern to find commands [OK]
Common Mistakes:
  • Using invalid parameters like -Filter or -Search
  • Not using wildcard * to match multiple commands
  • Passing command name without quotes
3. What will be the output of the following command?
Get-Command -Module Microsoft.PowerShell.Management | Select-Object -First 2 -Property Name
medium
A. Lists the first two command names from the Microsoft.PowerShell.Management module
B. Lists all commands from all modules
C. Returns an error because -Module is invalid
D. Lists the last two commands from the Microsoft.PowerShell.Management module

Solution

  1. Step 1: Understand the use of -Module parameter

    -Module Microsoft.PowerShell.Management filters commands to only those in that module.
  2. Step 2: Analyze Select-Object usage

    Select-Object -First 2 -Property Name selects only the first two commands and shows their names.
  3. Final Answer:

    Lists the first two command names from the Microsoft.PowerShell.Management module -> Option A
  4. Quick Check:

    -Module filters module, Select-Object picks first 2 names = A [OK]
Hint: Use -Module to filter commands by module name [OK]
Common Mistakes:
  • Thinking it lists all commands from all modules
  • Assuming -Module is invalid
  • Confusing first two with last two commands
4. You run this command but get an error:
Get-Command -Nam "Get-Process"

What is the most likely cause of the error?
medium
A. Misspelled parameter name; should be -Name instead of -Nam
B. Get-Process is not a valid command
C. You need to run PowerShell as administrator
D. The command requires a module parameter

Solution

  1. Step 1: Check the parameter spelling

    The parameter -Nam is misspelled; the correct parameter is -Name.
  2. Step 2: Validate command existence and permissions

    Get-Process is a valid command and does not require admin rights or module parameter to run.
  3. Final Answer:

    Misspelled parameter name; should be -Name instead of -Nam -> Option A
  4. Quick Check:

    Parameter spelling error causes failure = A [OK]
Hint: Check parameter spelling carefully to avoid errors [OK]
Common Mistakes:
  • Assuming command doesn't exist
  • Thinking admin rights are needed
  • Adding unnecessary parameters
5. You want to find all commands of type 'Cmdlet' that include 'Service' in their name. Which command will correctly do this?
hard
A. Get-Command -CommandType Cmdlet -Module '*Service*'
B. Get-Command -Name '*Service*' -CommandType Cmdlet
C. Get-Command -Name 'Service' -CommandType Cmdlet
D. Get-Command -Filter '*Service*' -Type Cmdlet

Solution

  1. Step 1: Use correct parameters for filtering

    -Name '*Service*' uses wildcard to find commands with 'Service' anywhere in the name. -CommandType Cmdlet filters to only cmdlets.
  2. Step 2: Eliminate incorrect options

    -Filter and -Type are invalid parameters. Exact name 'Service' won't match commands containing 'Service' as part of the name. -Module '*Service*' filters by module name, not command name.
  3. Final Answer:

    Get-Command -Name '*Service*' -CommandType Cmdlet -> Option B
  4. Quick Check:

    Use -Name with wildcard and -CommandType = D [OK]
Hint: Combine -Name with wildcard and -CommandType to filter commands [OK]
Common Mistakes:
  • Using invalid parameters like -Filter or -Type
  • Not using wildcards to match partial names
  • Confusing module filtering with command name filtering
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