Preparing the skills and environment before writing your first PowerShell command: comfort in the command line, familiarity with Windows, and the concepts of variables, loops, conditionals, filesystem, and basic networking. Concludes with installing PowerShell 7+ via winget and MSI, verifying pwsh, and setting up side-by-side usage with Windows PowerShell 5.1.

Welcome to the Learn PowerShell series! This series will take you from mastering PowerShell — the scripting and automation language for Windows administration, cloud, and DevOps — starting from your first command in the console to secure, tested enterprise scripts. There are 31 episodes arranged in sequence, so reading each episode consistently will build your skills layer by layer.
PowerShell is unique: it is two things at once. It is a shell/CLI — a place where you type commands to manage your system, like Command Prompt or Bash. It is also a programming language — with variables, conditionals, loops, functions, and even classes — like Python. Understanding both sides from the start will make all the material that follows much easier.
But before you type your first pwsh command, there are some basic skills and tools you need to prepare. Why are pre-requisites important? Think about wanting to become a professional chef: a great recipe isn't enough without mastering your knife and basic cutting techniques. Episode 0 prepares your "knife": getting comfortable in the command line, understanding basic programming concepts, understanding the Windows filesystem, and then ensuring PowerShell 7+ is installed and verified.
PowerShell doesn't have GUI buttons for most of its power. The GUI is like a TV remote control — simple, but limited to the buttons available. The command line is like an airplane cockpit — intimidating at first, but it gives you full control. All automation work — service management, log processing, deployment — starts with a command in the terminal.
You don't need to memorize hundreds of commands. These four core commands are enough as a starting point:
| Command | Function |
|---|---|
Get-Location | Displays the current working directory |
Get-ChildItem | Lists the contents of a directory |
Set-Location | Changes to another directory |
New-Item | Creates a file or folder |
PowerShell was born and grew up on Windows. Most episodes will manage Windows components: services, processes, event logs, registry, and Active Directory. First get to know these things on your Windows system: Task Manager to view processes and services, services.msc for the service list, and Settings / Control Panel for system configuration. You also need to understand the concept of administrator rights — many PowerShell commands require a console running elevated (Run as administrator).
You don't need to be a programmer to follow this series, but these three concepts will be used in almost every episode:
| Concept | Analogy | Why It Matters |
|---|---|---|
| Variable | A named box that stores a value | Store and reuse values |
| Conditional | A fork in the road: go left or right | Make decisions based on conditions |
| Loop | A washing machine: process until done | Process many items at once |
Don't worry if this feels abstract — all three are covered practically in episode 3 (variables), episode 5 (conditionals), and episode 6 (loops).
PowerShell works on top of the Windows filesystem. Understand its basic structure: every drive has a letter (C:, D:), paths use backslashes (C:\Users\arman\Documents), and there are special user folders that are often your working location. This concept matters because every file command — create, read, copy — always references a path.
In the later episodes we'll cover remoting and server administration, so understand the basic networking concepts: IP address as the machine's address, DNS as the phone book that translates names to IP addresses, and port as the door to a specific service. Try ping to your own address or Test-NetConnection to your favorite site to feel connectivity from the command line.
PowerShell isn't resource-hungry, but you need room to run Windows, an editor, and the console at the same time:
| Component | Minimum | Comfortable |
|---|---|---|
| RAM | 4 GB | 8 GB or more |
| Storage | 10 GB | 256 GB SSD |
| Processor | 2 cores | 4 cores or more |
These specifications are sufficient for the entire series. The target operating system is Windows 10/11 or Windows Server 2016+; PowerShell 7+ also runs on Linux and macOS, and some episodes will take advantage of that — but the main focus of this series is Windows.
| Tool | Role | Notes |
|---|---|---|
| Windows 10/11 or Server 2016+ | Target operating system | Foundation for Windows administration |
| Windows PowerShell 5.1 | Windows built-in engine | Already installed, run via powershell.exe |
| PowerShell 7+ | Main engine for the series | Cross-platform, run via pwsh.exe |
| VS Code + PowerShell extension | Main editor | Syntax highlighting, debugger, IntelliSense |
| PowerShell ISE | Legacy editor | Only supports 5.1; no longer developed |
| Git | Version control | For managing scripts in the Git episode |
| Windows Terminal | Modern terminal | Tabs, themes, comfortable console host |
| PSReadLine | Line editing | History, autocomplete; built into PS 7 |
Most episodes use PowerShell 7+ (pwsh) because of its modern features. Install it now using one of the following methods.
winget is the package manager built into Windows 10/11. Open Windows PowerShell 5.1 (already on Windows) and run:
winget install Microsoft.PowerShellTo update to the latest version in the future:
winget upgrade Microsoft.PowerShellAlternatively, download the installer from the PowerShell project's GitHub Releases page. Look for a file ending in .msi (for example PowerShell-7.4.x-win-x64.msi), run it, and follow the wizard. The default options are sufficient; make sure the Add to PATH option is checked so the pwsh command is available from any directory.
Once installed, verify from the terminal:
pwsh -vPowerShell 7.4.6Check the details of the running engine:
$PSVersionTable.PSVersion
$PSVersionTable.PSEditionPSEdition is Core for PowerShell 7 and Desktop for Windows PowerShell 5.1.
Installing PowerShell 7 does not replace Windows PowerShell 5.1 — the two coexist. powershell.exe always points to 5.1 (built into Windows), while pwsh.exe points to 7+. This is like two entrances to the same building: both are valid, but most of the material in this series is run through the pwsh entrance.
Tip
Use winget for installation — besides being practical, the winget upgrade Microsoft.PowerShell command keeps your PowerShell up to date without downloading the installer manually for every release.
In episode 0 you've prepared the foundation for the entire series: CLI skills, familiarity with Windows, variable-conditional-loop concepts, an understanding of the filesystem and networking, adequate hardware, and an installed, verified PowerShell 7+.
Key takeaways:
Get-Location, Get-ChildItem, Set-Location, New-Item.pwsh) coexists with Windows PowerShell 5.1 (powershell.exe) — they don't overwrite each other.winget install Microsoft.PowerShell; verify with pwsh -v.In the next episode, episode 1, we'll discuss the history, background, and why the world needs PowerShell — from the fragile Batch and VBScript, the birth of the Monad project in 2006, the version journey up to the cross-platform PowerShell 7, and its comparison with CMD, Python, and Bash. Make sure your pwsh is ready, because the Learn PowerShell journey is just beginning!