Bird
Raised Fist0
PowerShellscripting~5 mins

Parameters in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a parameter in a PowerShell script?
A parameter is a way to pass information into a PowerShell script or function so it can use that information to do its work.
Click to reveal answer
beginner
How do you define a parameter in a PowerShell script?
You define parameters inside a param() block at the start of the script or function.
Click to reveal answer
intermediate
What is the purpose of specifying a parameter type in PowerShell?
Specifying a type helps PowerShell check that the input is the right kind of data, like a number or text, making scripts safer and clearer.
Click to reveal answer
intermediate
How can you make a parameter optional in PowerShell?
You can make a parameter optional by not marking it as mandatory. You can also provide a default value so the script uses that if no input is given.
Click to reveal answer
intermediate
What does the [switch] parameter type do in PowerShell?
A [switch] parameter acts like a simple on/off flag. If you include it when running the script, it is true; if you leave it out, it is false.
Click to reveal answer
Where do you place the param() block in a PowerShell script?
AAt the very start of the script
BAnywhere in the middle of the script
COnly inside functions
DAt the end of the script
What happens if you run a script with a mandatory parameter but do not provide it?
AThe script ignores the parameter
BThe script runs with a default value
CPowerShell asks you to enter the value
DThe script crashes without message
How do you define a parameter with a default value in PowerShell?
A<code>param([string]$name = 'Guest')</code>
B<code>param([string]$name?)</code>
C<code>param([string]$name!)</code>
D<code>param([string]$name*)</code>
What type of parameter is best for a simple on/off option?
A[int]
B[switch]
C[bool]
D[string]
Which of these is a correct way to declare a mandatory parameter?
A<code>[Parameter(Required)] [string]$Name</code>
B<code>[Mandatory] [string]$Name</code>
C<code>[string]$Name = Mandatory</code>
D<code>[Parameter(Mandatory=$true)] [string]$Name</code>
Explain how to create a PowerShell script that accepts a mandatory string parameter and an optional integer parameter with a default value.
Think about using [Parameter(Mandatory=$true)] and assigning a default value with =
You got /3 concepts.
    Describe the difference between a [switch] parameter and a boolean parameter in PowerShell.
    Consider how you use them when calling the script.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the purpose of using param() in a PowerShell script?
      easy
      A. To declare input parameters that the script can accept
      B. To define a function inside the script
      C. To output results from the script
      D. To comment lines in the script

      Solution

      1. Step 1: Understand the role of param()

        The param() block is used at the start of a PowerShell script to declare parameters that the script can accept as input.
      2. Step 2: Differentiate from other script parts

        It is not used to define functions, output results, or comment lines. Those have different syntax and purposes.
      3. Final Answer:

        To declare input parameters that the script can accept -> Option A
      4. Quick Check:

        param() declares input parameters [OK]
      Hint: Remember: param() is for input, not output or comments [OK]
      Common Mistakes:
      • Confusing param() with function declaration
      • Thinking param() outputs data
      • Using param() to comment code
      2. Which of the following is the correct syntax to declare a mandatory string parameter named Name in PowerShell?
      easy
      A. param([string]$Name = "")
      B. param([string]$Name)
      C. param($Name:string Mandatory)
      D. param([Parameter(Mandatory=$true)][string]$Name)

      Solution

      1. Step 1: Understand mandatory parameter syntax

        To make a parameter mandatory, use the [Parameter(Mandatory=$true)] attribute before the type and name.
      2. Step 2: Check each option

        param([Parameter(Mandatory=$true)][string]$Name) correctly uses [Parameter(Mandatory=$true)][string]$Name. param([string]$Name = "") sets a default empty string, so not mandatory. param([string]$Name) lacks the mandatory attribute. param($Name:string Mandatory) is invalid syntax.
      3. Final Answer:

        param([Parameter(Mandatory=$true)][string]$Name) -> Option D
      4. Quick Check:

        Mandatory parameter needs [Parameter(Mandatory=$true)] [OK]
      Hint: Mandatory parameters use [Parameter(Mandatory=$true)] attribute [OK]
      Common Mistakes:
      • Omitting the Mandatory attribute
      • Using default value instead of mandatory
      • Incorrect attribute syntax
      3. What will be the output of this script when run with -Count 3?
      param([int]$Count = 1)
      for ($i = 1; $i -le $Count; $i++) { Write-Output "Number $i" }
      medium
      A. Number 1 Number 2 Number 3
      B. Number 1
      C. Number 3
      D. Error: Missing parameter

      Solution

      1. Step 1: Understand parameter default and input

        The parameter $Count has a default of 1 but is overridden by passing -Count 3.
      2. Step 2: Trace the loop output

        The for loop runs from 1 to 3, outputting "Number 1", "Number 2", and "Number 3" each on a new line.
      3. Final Answer:

        Number 1 Number 2 Number 3 -> Option A
      4. Quick Check:

        Loop runs 3 times with Count=3 [OK]
      Hint: Parameter overrides default; loop runs Count times [OK]
      Common Mistakes:
      • Ignoring passed parameter and using default
      • Expecting single output instead of looped output
      • Confusing parameter name or type
      4. Identify the error in this parameter declaration:
      param([int]$Age = "twenty")
      medium
      A. Missing mandatory attribute
      B. Type mismatch: assigning string to int parameter
      C. Parameter name cannot be Age
      D. Default value must be null

      Solution

      1. Step 1: Check parameter type and default value

        The parameter $Age is declared as [int] but the default value is the string "twenty".
      2. Step 2: Understand type mismatch error

        PowerShell cannot convert the string "twenty" to an integer, causing a type mismatch error.
      3. Final Answer:

        Type mismatch: assigning string to int parameter -> Option B
      4. Quick Check:

        Default value must match parameter type [OK]
      Hint: Default values must match declared parameter type [OK]
      Common Mistakes:
      • Assigning string default to int parameter
      • Ignoring type mismatch errors
      • Assuming parameter name restrictions
      5. You want to create a script that accepts two parameters: Path (string, mandatory) and Verbose (switch, optional). Which is the correct way to declare these parameters?
      hard
      A. param([string]$Path, [Parameter(Mandatory=$true)][switch]$Verbose)
      B. param([string]$Path = "", [switch]$Verbose = $false)
      C. param([Parameter(Mandatory=$true)][string]$Path, [switch]$Verbose)
      D. param([switch]$Path, [string]$Verbose)

      Solution

      1. Step 1: Identify mandatory and optional parameters

        Path must be mandatory string, so use [Parameter(Mandatory=$true)][string]$Path. Verbose is an optional switch, so [switch]$Verbose without mandatory attribute.
      2. Step 2: Evaluate each option

        param([Parameter(Mandatory=$true)][string]$Path, [switch]$Verbose) correctly declares Path as mandatory string and Verbose as optional switch. param([string]$Path, [Parameter(Mandatory=$true)][switch]$Verbose) wrongly makes Verbose mandatory. param([string]$Path = "", [switch]$Verbose = $false) sets default empty string for Path, so not mandatory. param([switch]$Path, [string]$Verbose) swaps types incorrectly.
      3. Final Answer:

        param([Parameter(Mandatory=$true)][string]$Path, [switch]$Verbose) -> Option C
      4. Quick Check:

        Mandatory string + optional switch = param([Parameter(Mandatory=$true)][string]$Path, [switch]$Verbose) [OK]
      Hint: Mandatory uses [Parameter(Mandatory=$true)], switches don't [OK]
      Common Mistakes:
      • Making switches mandatory
      • Setting default values instead of mandatory
      • Mixing parameter types
      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