UnderTheWire - PowerShell Practice Terminal is part of Practice Tools. Sign in or create an account, then subscribe for โฆ4,000/month to unlock it.
Step-by-step exercises for UnderTheWire - PowerShell Practice Terminal - read them here, then practice live in the tool above.
A full walkthrough of how the wargames work, the exact cmdlets and habits you need before you start the clock, and a game-by-game plan for Tutorial, Basilisk, and Phoenix.
Underthewire.tech runs timed "wargames" โ each one drops you into a live PowerShell session on a target machine and gives you a sequence of numbered questions (usually 15โ20). Every question is answered by running a PowerShell command and typing the resulting value into the answer box. Your score depends on how many you get right and how fast you clear the set. Nothing here is multiple choice โ you're being tested on whether you can actually operate a shell under time pressure, not whether you can recognize the right answer.
The beginner track exists because jumping straight into a timed game with zero PowerShell background is the single biggest reason people quit after one attempt. This guide gets you to the point where the clock is your only real obstacle.
Get-HelpAlmost every beginner question can be solved without memorizing anything, because PowerShell's help system will tell you the exact syntax and give you working examples. Learn this pattern before anything else:
# Update the local help cache once (run as Administrator, needs internet)
Update-Help
# See a short summary of what a cmdlet does
Get-Help Get-Service
# See real, copy-pasteable usage examples โ this is the one you'll use constantly
Get-Help Get-Service -Examples
# See every parameter, with full descriptions
Get-Help Get-Service -Full
# See just the syntax block (fastest during a timed game)
Get-Help Get-Service -Detailed
-Examples is almost always the fastest path to an answer โ it shows you real commands rather than abstract parameter descriptions you then have to translate yourself.PowerShell cmdlets follow a strict Verb-Noun naming pattern (Get-Service, Stop-Process, New-Item). If a question asks about something you don't have a cmdlet name for, search by verb or noun instead of guessing:
# Every cmdlet that "gets" something
Get-Command -Verb Get
# Every cmdlet that operates on a "Service"
Get-Command -Noun Service
# Combine both to narrow down fast
Get-Command -Verb Get -Noun Process
# Full list of approved verbs, if you're unsure which one applies
Get-Verb
These aren't the only cmdlets you'll see, but they cover the large majority of beginner questions. Practice each one until you can write it without looking it up.
| Cmdlet | What it's for |
|---|---|
Get-Service | List, filter, start/stop Windows services |
Get-Process | List running processes, CPU/memory usage |
Get-ComputerInfo | OS version, build number, boot time, hardware summary |
Get-EventLog / Get-WinEvent | Read Windows event logs (older/newer cmdlet respectively) |
Get-Date | Current date/time, and date arithmetic |
| Cmdlet | What it's for |
|---|---|
Get-ChildItem (alias ls/dir) | List files and folders โ supports -Recurse, -Filter, -Hidden |
Get-Content (alias cat) | Read a file's contents to the console |
Get-Item | Get metadata about one specific file or folder |
Test-Path | Check whether a file/folder exists (returns True/False) |
# All services that are currently running
Get-Service | Where-Object Status -eq 'Running'
# Top 5 processes by memory usage
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
# All .log files under C:\Windows, including subfolders
Get-ChildItem -Path C:\Windows -Filter *.log -Recurse -ErrorAction SilentlyContinue
# How many days since the machine last booted
(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
-ErrorAction SilentlyContinue a lot in real usage โ it suppresses "access denied" noise when recursing through folders you don't have permission to read. It's optional for beginner games, but good to recognize when you see it in someone else's command.A common beginner mistake is running the right command but typing the wrong thing into the answer box because the output wasn't read carefully. A few habits fix this:
Measure-Object rather than counting rows by eye: Get-Service | Measure-Object shows a Count property directly.Select-Object -ExpandProperty <PropertyName> so you get a clean value with no extra formatting to misread.Get-Member on any command's output if you're not sure what properties are even available: Get-Process | Get-Member.Play this first, no exceptions. It exists purely to teach you the platform: how questions are presented, how answers are graded, what the scoreboard/timer look like, and what to do if you get stuck. Nothing here should feel hard โ if it does, stop and go back through section 3โ4 of this guide first.
The first real beginner wargame. Expect questions built almost entirely around Get-Help, Get-Command, and basic system/file cmdlets from the tables above. Nothing here should require chaining more than one or two commands together.
Before you attempt it: make sure you can, without looking anything up, list running services, list the top N processes by memory, count items in a folder, and pull help examples for an arbitrary cmdlet.
Similar difficulty to Basilisk but leans slightly more on file-system and event-log questions. Treat it as a second rep of the same muscle rather than a step up โ if Basilisk felt shaky, replay it before moving to Phoenix.
Get-Service, Get-Process, Get-ChildItem, Get-Content, Get-EventLog/Get-WinEventMeasure-Object and a single property with -ExpandPropertyUnderthewire shows a walkthrough of correct answers once your attempt ends. Don't skip it โ for every question you missed, write down which cmdlet or parameter you didn't know, and drill it separately before your next attempt. The goal of the beginner track isn't a perfect score on the first try; it's leaving with zero cmdlets you'd have to look up from scratch next time.
A full walkthrough of how the wargames work, the exact cmdlets and habits you need before you start the clock, and a game-by-game plan for Tutorial, Basilisk, and Phoenix.
Underthewire.tech runs timed "wargames" โ each one drops you into a live PowerShell session on a target machine and gives you a sequence of numbered questions (usually 15โ20). Every question is answered by running a PowerShell command and typing the resulting value into the answer box. Your score depends on how many you get right and how fast you clear the set. Nothing here is multiple choice โ you're being tested on whether you can actually operate a shell under time pressure, not whether you can recognize the right answer.
The beginner track exists because jumping straight into a timed game with zero PowerShell background is the single biggest reason people quit after one attempt. This guide gets you to the point where the clock is your only real obstacle.
Get-HelpAlmost every beginner question can be solved without memorizing anything, because PowerShell's help system will tell you the exact syntax and give you working examples. Learn this pattern before anything else:
# Update the local help cache once (run as Administrator, needs internet)
Update-Help
# See a short summary of what a cmdlet does
Get-Help Get-Service
# See real, copy-pasteable usage examples โ this is the one you'll use constantly
Get-Help Get-Service -Examples
# See every parameter, with full descriptions
Get-Help Get-Service -Full
# See just the syntax block (fastest during a timed game)
Get-Help Get-Service -Detailed
-Examples is almost always the fastest path to an answer โ it shows you real commands rather than abstract parameter descriptions you then have to translate yourself.PowerShell cmdlets follow a strict Verb-Noun naming pattern (Get-Service, Stop-Process, New-Item). If a question asks about something you don't have a cmdlet name for, search by verb or noun instead of guessing:
# Every cmdlet that "gets" something
Get-Command -Verb Get
# Every cmdlet that operates on a "Service"
Get-Command -Noun Service
# Combine both to narrow down fast
Get-Command -Verb Get -Noun Process
# Full list of approved verbs, if you're unsure which one applies
Get-Verb
These aren't the only cmdlets you'll see, but they cover the large majority of beginner questions. Practice each one until you can write it without looking it up.
| Cmdlet | What it's for |
|---|---|
Get-Service | List, filter, start/stop Windows services |
Get-Process | List running processes, CPU/memory usage |
Get-ComputerInfo | OS version, build number, boot time, hardware summary |
Get-EventLog / Get-WinEvent | Read Windows event logs (older/newer cmdlet respectively) |
Get-Date | Current date/time, and date arithmetic |
| Cmdlet | What it's for |
|---|---|
Get-ChildItem (alias ls/dir) | List files and folders โ supports -Recurse, -Filter, -Hidden |
Get-Content (alias cat) | Read a file's contents to the console |
Get-Item | Get metadata about one specific file or folder |
Test-Path | Check whether a file/folder exists (returns True/False) |
# All services that are currently running
Get-Service | Where-Object Status -eq 'Running'
# Top 5 processes by memory usage
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
# All .log files under C:\Windows, including subfolders
Get-ChildItem -Path C:\Windows -Filter *.log -Recurse -ErrorAction SilentlyContinue
# How many days since the machine last booted
(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
-ErrorAction SilentlyContinue a lot in real usage โ it suppresses "access denied" noise when recursing through folders you don't have permission to read. It's optional for beginner games, but good to recognize when you see it in someone else's command.A common beginner mistake is running the right command but typing the wrong thing into the answer box because the output wasn't read carefully. A few habits fix this:
Measure-Object rather than counting rows by eye: Get-Service | Measure-Object shows a Count property directly.Select-Object -ExpandProperty <PropertyName> so you get a clean value with no extra formatting to misread.Get-Member on any command's output if you're not sure what properties are even available: Get-Process | Get-Member.Play this first, no exceptions. It exists purely to teach you the platform: how questions are presented, how answers are graded, what the scoreboard/timer look like, and what to do if you get stuck. Nothing here should feel hard โ if it does, stop and go back through section 3โ4 of this guide first.
The first real beginner wargame. Expect questions built almost entirely around Get-Help, Get-Command, and basic system/file cmdlets from the tables above. Nothing here should require chaining more than one or two commands together.
Before you attempt it: make sure you can, without looking anything up, list running services, list the top N processes by memory, count items in a folder, and pull help examples for an arbitrary cmdlet.
Similar difficulty to Basilisk but leans slightly more on file-system and event-log questions. Treat it as a second rep of the same muscle rather than a step up โ if Basilisk felt shaky, replay it before moving to Phoenix.
Get-Service, Get-Process, Get-ChildItem, Get-Content, Get-EventLog/Get-WinEventMeasure-Object and a single property with -ExpandPropertyUnderthewire shows a walkthrough of correct answers once your attempt ends. Don't skip it โ for every question you missed, write down which cmdlet or parameter you didn't know, and drill it separately before your next attempt. The goal of the beginner track isn't a perfect score on the first try; it's leaving with zero cmdlets you'd have to look up from scratch next time.
A full walkthrough of how the wargames work, the exact cmdlets and habits you need before you start the clock, and a game-by-game plan for Tutorial, Basilisk, and Phoenix.
Underthewire.tech runs timed "wargames" โ each one drops you into a live PowerShell session on a target machine and gives you a sequence of numbered questions (usually 15โ20). Every question is answered by running a PowerShell command and typing the resulting value into the answer box. Your score depends on how many you get right and how fast you clear the set. Nothing here is multiple choice โ you're being tested on whether you can actually operate a shell under time pressure, not whether you can recognize the right answer.
The beginner track exists because jumping straight into a timed game with zero PowerShell background is the single biggest reason people quit after one attempt. This guide gets you to the point where the clock is your only real obstacle.
Get-HelpAlmost every beginner question can be solved without memorizing anything, because PowerShell's help system will tell you the exact syntax and give you working examples. Learn this pattern before anything else:
# Update the local help cache once (run as Administrator, needs internet)
Update-Help
# See a short summary of what a cmdlet does
Get-Help Get-Service
# See real, copy-pasteable usage examples โ this is the one you'll use constantly
Get-Help Get-Service -Examples
# See every parameter, with full descriptions
Get-Help Get-Service -Full
# See just the syntax block (fastest during a timed game)
Get-Help Get-Service -Detailed
-Examples is almost always the fastest path to an answer โ it shows you real commands rather than abstract parameter descriptions you then have to translate yourself.PowerShell cmdlets follow a strict Verb-Noun naming pattern (Get-Service, Stop-Process, New-Item). If a question asks about something you don't have a cmdlet name for, search by verb or noun instead of guessing:
# Every cmdlet that "gets" something
Get-Command -Verb Get
# Every cmdlet that operates on a "Service"
Get-Command -Noun Service
# Combine both to narrow down fast
Get-Command -Verb Get -Noun Process
# Full list of approved verbs, if you're unsure which one applies
Get-Verb
These aren't the only cmdlets you'll see, but they cover the large majority of beginner questions. Practice each one until you can write it without looking it up.
| Cmdlet | What it's for |
|---|---|
Get-Service | List, filter, start/stop Windows services |
Get-Process | List running processes, CPU/memory usage |
Get-ComputerInfo | OS version, build number, boot time, hardware summary |
Get-EventLog / Get-WinEvent | Read Windows event logs (older/newer cmdlet respectively) |
Get-Date | Current date/time, and date arithmetic |
| Cmdlet | What it's for |
|---|---|
Get-ChildItem (alias ls/dir) | List files and folders โ supports -Recurse, -Filter, -Hidden |
Get-Content (alias cat) | Read a file's contents to the console |
Get-Item | Get metadata about one specific file or folder |
Test-Path | Check whether a file/folder exists (returns True/False) |
# All services that are currently running
Get-Service | Where-Object Status -eq 'Running'
# Top 5 processes by memory usage
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
# All .log files under C:\Windows, including subfolders
Get-ChildItem -Path C:\Windows -Filter *.log -Recurse -ErrorAction SilentlyContinue
# How many days since the machine last booted
(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
-ErrorAction SilentlyContinue a lot in real usage โ it suppresses "access denied" noise when recursing through folders you don't have permission to read. It's optional for beginner games, but good to recognize when you see it in someone else's command.A common beginner mistake is running the right command but typing the wrong thing into the answer box because the output wasn't read carefully. A few habits fix this:
Measure-Object rather than counting rows by eye: Get-Service | Measure-Object shows a Count property directly.Select-Object -ExpandProperty <PropertyName> so you get a clean value with no extra formatting to misread.Get-Member on any command's output if you're not sure what properties are even available: Get-Process | Get-Member.Play this first, no exceptions. It exists purely to teach you the platform: how questions are presented, how answers are graded, what the scoreboard/timer look like, and what to do if you get stuck. Nothing here should feel hard โ if it does, stop and go back through section 3โ4 of this guide first.
The first real beginner wargame. Expect questions built almost entirely around Get-Help, Get-Command, and basic system/file cmdlets from the tables above. Nothing here should require chaining more than one or two commands together.
Before you attempt it: make sure you can, without looking anything up, list running services, list the top N processes by memory, count items in a folder, and pull help examples for an arbitrary cmdlet.
Similar difficulty to Basilisk but leans slightly more on file-system and event-log questions. Treat it as a second rep of the same muscle rather than a step up โ if Basilisk felt shaky, replay it before moving to Phoenix.
Get-Service, Get-Process, Get-ChildItem, Get-Content, Get-EventLog/Get-WinEventMeasure-Object and a single property with -ExpandPropertyUnderthewire shows a walkthrough of correct answers once your attempt ends. Don't skip it โ for every question you missed, write down which cmdlet or parameter you didn't know, and drill it separately before your next attempt. The goal of the beginner track isn't a perfect score on the first try; it's leaving with zero cmdlets you'd have to look up from scratch next time.