This is an educational and reference module targeted for PowerShell beginner, although everyone is welcome to install and use the module.
This module requires PowerShell 7 and should work on Windows, Linux, and macOS. To install the module from the PowerShell Gallery, run the following command:
Install-Module PSIntroIf you are using the newer, and recommended Microsoft.PowerShell.PSResourceGet module, run:
Install-PSResource -Name PSIntroThis module grew out of discussions with Jason Helmick about providing a beginner interface to PowerShell for new users. Years ago, some products would offer a "splash" or welcome screen when the application started. This module provides similar functionality for PowerShell. In addition to a splash screen of information, the module also includes a set of interactive tutorials for beginners on core PowerShell concepts.
The module also includes a few commands designed to help absolute beginners get started managing their PowerShell environment.
When the user starts PowerShell, they can be presented with this welcome or "splash" screen.
When run in Windows Terminal, or similar, the links should be clickable, including a link to online help for Update-Help. This is a command that could go into a user's profile.
Get-PSIntroThis command has aliases of
psintroandpswelcome.
If the user runs:
Get-PSIntro -tutorialThis will display the welcome screen with a tutorial prompt.
The user can also use the -ModuleStatus parameter to display the status of key modules.
Get-PSIntro -ModuleStatusThis information is also available by running Get-ModuleStatus.
PS C:\> Get-ModuleStatus
Name Online Installed UpdateNeeded
---- ------ --------- ------------
PSReadLine 2.4.5 2.4.5 False
Microsoft.PowerShell.PSResourceGet 1.1.1 1.1.1 FalseIf the module requires an update, it will be styled in red. This feature is meant to provide a quick reference of critical modules. The default modules were selected as they have a high impact on the user experience.
However, you can pass any list of module names to check their status.
PS C:\> Get-Content C:\work\modlist.txt | Get-ModuleStatus
Name Online Installed UpdateNeeded
---- ------ --------- ------------
PSReadLine 2.4.5 2.4.5 False
Microsoft.PowerShell.PSResourceGet 1.1.1 1.1.1 False
Microsoft.PowerShell.ThreadJob 2.2.0 2.1.0 True
Microsoft.PowerShell.ConsoleGuiTools 0.7.7 0.7.7 False
Pester 5.7.1 5.7.1 FalseThe module also includes a command to display the status of PowerShell profile scripts. It will not create them but it will report the location of each profile script and whether it exists.
To learn more about profile scripts, read the help documentation:
PS C:\>help about_ProfilesThe module includes a set of interactive tutorials. Running Start-Tutorial presents a simple menu.
Or the user can run the command specifying a topic.
PS C:\> Start-Tutorial 'Get-Command'If the user elects to run tutorials from the welcome screen, the tutorials will be run consecutively in a pre-defined order. No menu will be presented.
The module contains a set of tutorials written for absolute PowerShell beginners. The tutorials are written as PowerShell scripts with a combination of formatted text and live console output from the user's session. This ensures that output is relevant to the user's environment.
The tutorials use $PSStyle for formatting.
You can quit a tutorial at any time by entering q at the prompt. Note that your progress will not be saved.
Beginning with v0.8.0 message strings are localized for en-US and fr-FR cultures. Support for de-DE was added in v0.10.0. Tutorials have been translated from English using Claude Sonnet 3.7. All other localization translations were done in VS Code using GPT-5 mini.
I welcome pull requests with human-reviewed translations.
If you add a new localization, you should include a culture-specific folder that is properly cased. Inside the folder should be a localized version of PSIntro.psd1. There should also be a tutorials folder with localized tutorial scripts. Finally, there should be a folder for localized Markdown help files. Do not localize any of the Markdown headings such as ## Synopsis.
This file should be named with the last part of the culture name. For example, if you are providing a Spanish localization using the es-ES culture, the docs folder name would be docs-ES. All other files would be placed in es-ES. I will generate help files from the localized Markdown files with each new release.
This is a list of items under consideration for future development of this module.
- Are there other key modules that should be included by default?
- Microsoft.PowerShell.ThreadJobs
- Microsoft.PowerShell.ConsoleGuiTools
- Pester
- Saving tutorial progress
- Export tutorials to Polyglot notebooks
- Additional tutorial topics:
- PSReadline fundamentals
- Using $PSStyle
- Understanding PSDrives
- PSResourceGet
- PowerShell profile scripts
- Create a tutorial authoring framework
Please use the Discussions section of the project's GitHub repository to share your thoughts, ideas, and suggestions.








