Bird
Raised Fist0
PowerShellscripting~20 mins

Module creation basics in PowerShell - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PowerShell Module Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of importing a module with a function?
You have a PowerShell module file named MyTools.psm1 containing this function:
function Get-Greeting { "Hello, World!" }

After running Import-Module .\MyTools.psm1 and then Get-Greeting, what is the output?
PowerShell
function Get-Greeting { "Hello, World!" }

Import-Module .\MyTools.psm1
Get-Greeting
AHello, World!
BGet-Greeting
CError: Command not found
DModule imported successfully, no output
Attempts:
2 left
💡 Hint
Think about what the function returns when called after importing the module.
📝 Syntax
intermediate
2:00remaining
Which option correctly defines a PowerShell module manifest?
You want to create a module manifest file MyTools.psd1 for your module. Which snippet correctly starts the manifest with the required syntax?
A
{
    ModuleVersion = '1.0'
    GUID = '12345678-1234-1234-1234-123456789abc'
}
B
@{
    ModuleVersion = '1.0'
    GUID = '12345678-1234-1234-1234-123456789abc'
}
C
[Hashtable]
ModuleVersion = '1.0'
GUID = '12345678-1234-1234-1234-123456789abc'
D
<#
ModuleVersion = '1.0'
GUID = '12345678-1234-1234-1234-123456789abc'
#>
Attempts:
2 left
💡 Hint
A module manifest is a PowerShell hashtable saved in a .psd1 file.
🔧 Debug
advanced
2:00remaining
Why does this module function fail to export?
You have a module file MyTools.psm1 with this content:
function Get-Secret { "Top Secret" }
Export-ModuleMember -Function Get-Secret

After importing the module, running Get-Secret gives an error: Get-Secret : The term 'Get-Secret' is not recognized. Why?
PowerShell
function Get-Secret { "Top Secret" }
Export-ModuleMember -Function Get-Secret
AThe module file must be saved with a .psd1 extension to export functions
BExport-ModuleMember must be called before defining the function
CThe function is not exported because Export-ModuleMember is missing the -Function parameter value in quotes
DThe function name is case-sensitive and should be 'get-secret' in Export-ModuleMember
Attempts:
2 left
💡 Hint
Check how the function name is passed to Export-ModuleMember.
🚀 Application
advanced
2:00remaining
How to automatically import a module when a function is called?
You want to create a module that loads only when its function is called, to save memory. Which method achieves this in PowerShell?
AUse <code>AutoLoading</code> feature by placing the module in a standard module path
BUse <code>ModuleToProcess</code> in the module manifest to specify the .psm1 file
CUse <code>Import-Module</code> inside the function definition
DUse <code>Export-ModuleMember</code> with the <code>-AutoImport</code> flag
Attempts:
2 left
💡 Hint
PowerShell can auto-load modules placed in specific folders.
🧠 Conceptual
expert
2:00remaining
What is the main purpose of a PowerShell module manifest?
Choose the best description of what a module manifest (.psd1) file does in PowerShell module creation.
AIt contains the actual function code and scripts to run
BIt automatically imports the module when PowerShell starts
CIt compiles the module into a binary executable
DIt defines metadata, dependencies, and exported commands for the module
Attempts:
2 left
💡 Hint
Think about what information helps PowerShell manage the module.

Practice

(1/5)
1. What is the main purpose of creating a PowerShell module?
easy
A. To store variables permanently
B. To run scripts faster
C. To create graphical user interfaces
D. To package functions for reuse and sharing

Solution

  1. Step 1: Understand module purpose

    PowerShell modules are designed to group functions and scripts for reuse.
  2. Step 2: Identify correct purpose

    Among the options, only packaging functions for reuse and sharing matches the module's main goal.
  3. Final Answer:

    To package functions for reuse and sharing -> Option D
  4. Quick Check:

    Module purpose = Package functions [OK]
Hint: Modules bundle functions to reuse easily [OK]
Common Mistakes:
  • Thinking modules speed up script execution
  • Confusing modules with GUI tools
  • Believing modules store variables permanently
2. Which file extension is used for a PowerShell module file containing functions?
easy
A. .psm1
B. .dll
C. .exe
D. .ps1

Solution

  1. Step 1: Recall PowerShell module file types

    PowerShell modules that contain functions use the .psm1 extension.
  2. Step 2: Compare options

    .ps1 is a script file, .exe and .dll are binary files, so .psm1 is correct.
  3. Final Answer:

    .psm1 -> Option A
  4. Quick Check:

    Module file extension = .psm1 [OK]
Hint: Modules use .psm1 files, not .ps1 scripts [OK]
Common Mistakes:
  • Using .ps1 instead of .psm1 for modules
  • Confusing .dll or .exe as module files
  • Thinking .psm1 is a script file
3. Given this module file MyModule.psm1 with function Get-Greeting defined as:
function Get-Greeting { "Hello, World!" }

What is the output after running these commands?
Import-Module .\MyModule.psm1
Get-Greeting
medium
A. Import-Module : Cannot find path
B. Get-Greeting : The term 'Get-Greeting' is not recognized
C. Hello, World!
D. Hello World!

Solution

  1. Step 1: Understand Import-Module effect

    Import-Module loads functions from the .psm1 file, making Get-Greeting available.
  2. Step 2: Check function output

    Get-Greeting returns Hello, World! exactly as defined.
  3. Final Answer:

    Hello, World! -> Option C
  4. Quick Check:

    Import-Module loads function, output = Hello, World! [OK]
Hint: Import module first, then call function for output [OK]
Common Mistakes:
  • Forgetting to import the module before calling function
  • Expecting 'Hello World!' without comma
  • Typos in function name causing errors
4. You wrote a module file Utils.psm1 with a function but when you run Import-Module .\Utils.psm1, you get an error: "Cannot load module because of a syntax error." What is a common cause?
medium
A. The module file has a missing closing brace '}' in the function
B. The module file is saved with .ps1 extension
C. You forgot to run PowerShell as administrator
D. The function name is too long

Solution

  1. Step 1: Identify syntax error causes in module files

    Missing closing braces in functions cause syntax errors preventing module import.
  2. Step 2: Evaluate other options

    .ps1 extension is wrong but causes different error; admin rights or function name length do not cause syntax errors.
  3. Final Answer:

    The module file has a missing closing brace '}' in the function -> Option A
  4. Quick Check:

    Syntax error = missing brace [OK]
Hint: Check braces and syntax carefully in .psm1 files [OK]
Common Mistakes:
  • Confusing file extension errors with syntax errors
  • Assuming admin rights fix syntax errors
  • Ignoring missing braces or parentheses
5. You want to create a PowerShell module that contains two functions: Get-DateInfo and Get-UserInfo. Which is the correct way to organize and import these functions?
hard
A. Create separate .ps1 files for each function and run them directly
B. Put both functions in a single .psm1 file and import it with Import-Module
C. Put both functions in a .psm1 file but call them without importing the module
D. Create a .dll file containing the functions and import it with Import-Module

Solution

  1. Step 1: Understand module organization

    PowerShell modules typically group related functions in one .psm1 file for easy import.
  2. Step 2: Evaluate import method

    Import-Module loads the .psm1 file, making all functions available; running .ps1 files directly is not modular.
  3. Final Answer:

    Put both functions in a single .psm1 file and import it with Import-Module -> Option B
  4. Quick Check:

    Functions grouped in .psm1, import module [OK]
Hint: Group functions in one .psm1 file, then import [OK]
Common Mistakes:
  • Running .ps1 files instead of importing modules
  • Calling functions without importing module first
  • Trying to use .dll files without compiling
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