PowerShell Course

Automate Windows tasks with PowerShell. Learn Microsoft's powerful command-line shell and scripting language for system administration.

Learn PowerShell for automation and scripting — commands, variables, pipelines and scripts — with beginner-friendly lessons.

New to PowerShell? No experience needed.

Start with Lesson 1 — Introduction to PowerShell. You'll be automating Windows tasks faster than you think.

Continue where you left off

Lessons in this course

Frequently asked questions

What is PowerShell used for?

PowerShell is a scripting language and shell for automating tasks on Windows (and now cross-platform). It is widely used by system administrators and DevOps engineers to manage systems, files and cloud resources.

Is PowerShell worth learning?

If you work with Windows systems, automation or IT operations, PowerShell is a high-value skill that can save hours of manual work. This course covers commands, variables, pipelines and writing your own scripts.

How is PowerShell different from Bash?

Bash pipes text between commands; PowerShell pipes .NET objects. That means you can write Get-Process | Where-Object CPU -gt 10 and filter on a real property rather than parsing columns out of a string. It is the single biggest conceptual difference, and the reason PowerShell code often needs no awk or sed.

Does PowerShell only run on Windows?

Not any more. PowerShell 7 is cross-platform and runs on Linux and macOS as well. Windows PowerShell 5.1 — the version that ships in Windows — is Windows-only and is no longer getting new features, so learn the modern one.

What is the naming convention for PowerShell commands?

Verb-Noun, always: Get-Item, Set-Location, New-Item, Remove-Item. The verb list is fixed and published, which is why you can often guess a command you have never used. Get-Command and Get-Help are how you find the rest.

Why does my PowerShell script refuse to run?

The execution policy. By default Windows blocks unsigned scripts, and you get a message about running scripts being disabled. Set-ExecutionPolicy -Scope CurrentUser RemoteSigned is the usual fix — and understanding what you just allowed is worth a minute of your time.

Is PowerShell worth learning if I already know Bash?

If you administer Windows machines, Active Directory, Exchange or Azure, yes — those are all driven by PowerShell modules and there is no Bash equivalent. If you only work on Linux servers, your time is better spent deepening Bash.