📖 Scenario: You are working as a system administrator. You often write small scripts to perform tasks like greeting users and checking system status. To save time and avoid rewriting code, you want to learn how to package reusable code into modules.
🎯 Goal: Learn how to create a PowerShell module by packaging reusable functions, then import and use the module in a script.
📋 What You'll Learn
Create a PowerShell function inside a module file
Save the module with the correct file extension
Import the module in a script
Call the function from the imported module
Display the output of the function
💡 Why This Matters
🌍 Real World
System administrators and developers often write reusable scripts. Packaging these scripts as modules saves time and keeps code organized.
💼 Career
Knowing how to create and use PowerShell modules is essential for automation tasks in IT jobs, improving efficiency and code reuse.
Progress0 / 4 steps
1
Create a PowerShell function
Create a PowerShell function called Get-Greeting that returns the string 'Hello, PowerShell!'. Write the function exactly as shown.
PowerShell
Hint
Use the function keyword followed by the function name and curly braces. Use return to send back the greeting string.
2
Save the function as a module file
Save the function Get-Greeting inside a file named GreetingModule.psm1. This file will be your PowerShell module.
PowerShell
Hint
The module file must have the extension .psm1. Save the function code exactly as it is in this file.
3
Import the module in a script
Write a line of code to import the module GreetingModule.psm1 using the Import-Module cmdlet.
PowerShell
Hint
Use Import-Module followed by the relative path to the module file.
4
Call the function and display output
Call the function Get-Greeting from the imported module and print its output using Write-Output.
PowerShell
Hint
Use Write-Output with the function call inside parentheses to display the greeting.
Practice
(1/5)
1. What is the main reason to use modules in PowerShell?
easy
A. To avoid using functions
B. To make scripts run faster
C. To package reusable code in one file
D. To create graphical user interfaces
Solution
Step 1: Understand what modules do
Modules group related code, like functions, into one file for reuse.
Step 2: Compare options
Only To package reusable code in one file correctly describes packaging reusable code; others are unrelated.
Final Answer:
To package reusable code in one file -> Option C
Quick Check:
Modules = reusable code package [OK]
Hint: Modules bundle reusable code for easy sharing [OK]
Common Mistakes:
Thinking modules speed up script execution
Believing modules replace functions
Confusing modules with GUI tools
2. Which of the following is the correct way to import a module named MyTools in PowerShell?
easy
A. Load-Module MyTools
B. Import-Module MyTools
C. Use-Module MyTools
D. Add-Module MyTools
Solution
Step 1: Recall the PowerShell command to import modules
The correct command is Import-Module followed by the module name.
Step 2: Check each option
Only Import-Module MyTools uses the correct command syntax; others are invalid commands.
Final Answer:
Import-Module MyTools -> Option B
Quick Check:
Import-Module = correct import command [OK]
Hint: Use Import-Module to load modules in PowerShell [OK]
Common Mistakes:
Using Load-Module instead of Import-Module
Confusing Use-Module or Add-Module commands
Forgetting to specify the module name
3. Given this module file MathTools.psm1 with content:
function Add-Numbers { param($a, $b) return $a + $b }
What will be the output after running these commands?
Import-Module .\MathTools.psm1 Add-Numbers 3 4
medium
A. 7
B. 34
C. Error: Command not found
D. 3 4
Solution
Step 1: Import the module
The module is imported correctly, so the function Add-Numbers is available.
Step 2: Call the function with 3 and 4
The function adds the two numbers, so 3 + 4 = 7 is returned.
Final Answer:
7 -> Option A
Quick Check:
Add-Numbers(3,4) = 7 [OK]
Hint: Import module first, then call its functions [OK]
Common Mistakes:
Expecting string concatenation instead of addition
Not importing the module before calling function
Using wrong function name
4. You wrote a module with a function but when you import it, PowerShell says the function is not recognized. What is the most likely cause?
medium
A. PowerShell does not support modules
B. The module file is empty
C. You used Import-Module with wrong syntax
D. The function was not exported from the module
Solution
Step 1: Understand module exports
Functions must be exported to be visible outside the module.
Step 2: Check other options
Module file empty or wrong syntax cause different errors; PowerShell supports modules.
Final Answer:
The function was not exported from the module -> Option D
Quick Check:
Export functions to use them outside [OK]
Hint: Export functions to make them usable outside module [OK]
Common Mistakes:
Assuming all functions auto-export
Ignoring export-modulemember command
Thinking PowerShell lacks module support
5. You want to create a module that only shares two functions Get-Data and Set-Data but hides others. How do you do this?
hard
A. Use Export-ModuleMember to export only Get-Data and Set-Data
B. Put all functions in one file without exporting
C. Import the module without specifying functions
D. Rename the functions you want to hide
Solution
Step 1: Understand function export control
Export-ModuleMember controls which functions are visible outside the module.
Step 2: Apply export to only desired functions
Export only Get-Data and Set-Data to share them and hide others.
Final Answer:
Use Export-ModuleMember to export only Get-Data and Set-Data -> Option A