Windows Terminal vs PowerShell: What’s the Difference?

In Windows Terminal vs PowerShell, the difference is simple: Windows Terminal is the window, and PowerShell is the shell that runs inside it. Windows Terminal draws the text, tabs and panes, while PowerShell understands your commands and runs scripts.

So it’s not really Windows Terminal or PowerShell. You run PowerShell in Windows Terminal, or in the older console window. Below I compare the two, check which one a session is using and show how to make them work together.

Windows Terminal vs PowerShell at a glance

Windows TerminalPowerShell
What it isA terminal app (the window)A shell and scripting language
RunsPowerShell, cmd, WSL, SSH, Azure Cloud ShellCmdlets, scripts, .NET code
Main featuresTabs, split panes, profiles, themes, GPU textObjects in the pipeline, modules, remoting
VersionsWindows Terminal app (Store or winget)Windows PowerShell 5.1 and PowerShell 7
Can replace the other?No, it needs a shellNo, it needs a window to display in

Windows 11 includes Windows Terminal and makes it the default terminal, so most people already use both together. Microsoft’s Windows Terminal documentation and PowerShell overview cover each one.

If you’re also choosing between shells, see PowerShell vs CMD.

Check which shell and host a session uses

$PSVersionTable tells you which PowerShell you’re in, $Host.Name names the program hosting it, and Windows Terminal sets the WT_SESSION variable in every tab:

"PowerShell edition:  $($PSVersionTable.PSEdition)"
"PowerShell version:  $($PSVersionTable.PSVersion.Major).$($PSVersionTable.PSVersion.Minor)"
"Host program:        $($Host.Name)"
"In Windows Terminal: $([bool]$env:WT_SESSION)"

Output:

PowerShell edition:  Core
PowerShell version:  7.6
Host program:        ConsoleHost
In Windows Terminal: False
PowerShell check host and Windows Terminal session
PowerShell 7 in the classic console window (PowerShell 7)

I ran these checks in the classic console window, so In Windows Terminal is False. In a Windows Terminal tab it’s True, while edition, version and host stay the same, because the shell doesn’t change.

Windows PowerShell 5.1 console host check
Windows PowerShell 5.1 reports the Desktop edition (Windows PowerShell 5.1)

Desktop means Windows PowerShell 5.1 and Core means PowerShell 7. For more ways to check, see checking your PowerShell version.

Check which shells are installed

Get-Command finds programs on your PATH. This checks for Windows Terminal and the three shells you’d typically open in it:

foreach ($shell in 'wt.exe', 'pwsh.exe', 'powershell.exe', 'cmd.exe') {
    $found = Get-Command -Name $shell -ErrorAction SilentlyContinue
    '{0,-15} {1}' -f $shell, $(if ($found) { 'Installed' } else { 'Not found' })
}

Output:

wt.exe          Installed
pwsh.exe        Installed
powershell.exe  Installed
cmd.exe         Installed
Check installed shells and Windows Terminal
Windows Terminal and all three shells are available (PowerShell 7)

If pwsh.exe shows Not found, PowerShell 7 isn’t installed yet. See updating PowerShell on Windows 11.

Make PowerShell 7 the default in Windows Terminal

Windows Terminal often opens Windows PowerShell 5.1 by default. To switch, open Settings with Ctrl+, then under Startup set Default profile to PowerShell, which is the PowerShell 7 profile.

Under Default terminal application, choose Windows Terminal so that every console app, including powershell.exe started from the Run box, opens in a Terminal tab.

Open Windows Terminal tabs from PowerShell

wt.exe takes command-line arguments, so a script can open a ready-made layout. This opens PowerShell 7 in one tab and splits a second pane with cmd: