PowerShell Install on Windows 10 and 11: PowerShell 7 Guide

Windows ships with PowerShell 5.1 built in, but that version is frozen — no new features, no performance improvements. PowerShell 7 is the actively developed cross-platform release where everything new lands. Install PowerShell 7 Windows is a five-minute process, it runs side-by-side with the built-in version, and you keep both without any conflict. This post covers MSI installation, winget, updating existing installs, and how to tell them apart.
Windows PowerShell vs PowerShell 7 Differences
Before installing, understand what changes:
- Windows PowerShell 5.1: Built-in, Windows-only, .NET Framework, frozen feature set,
powershell.exe - PowerShell 7: Install separately, cross-platform, .NET 8+, actively developed,
pwsh.exe
# Check which version you're currently running
$PSVersionTable.PSVersion
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
5 1 19041 0
PowerShell 7 adds: null coalescing (??), null conditional (?.), ternary operator, foreach parallel, improved error handling, cross-platform support, and much more.
Install with MSI Package
The MSI installer is the most straightforward option for individual machines or silent enterprise deployment. Download from the GitHub releases page or use a direct download URL.
# Download the latest MSI (check GitHub for current version)
$version = "7.4.6"
$url = "https://github.com/PowerShell/PowerShell/releases/download/v$version/PowerShell-$version-win-x64.msi"
$dest = "$env:TEMP\PowerShell-$version.msi"
Invoke-WebRequest -Uri $url -OutFile $dest -UseBasicParsing
Write-Output "Downloaded to $dest"
# Install silently (add to PATH, enable context menus)
Start-Process msiexec.exe -ArgumentList "/i `"$dest`" /qn ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1" -Wait
After installation, pwsh.exe is available in your PATH from any terminal.
Install with winget
The Windows Package Manager (winget) is available on Windows 10 1809+ and Windows 11. It’s the simplest one-line installation method.
# Install PowerShell 7 (stable)
winget install --id Microsoft.PowerShell --source winget
# Install PowerShell 7 Preview
winget install --id Microsoft.PowerShell.Preview --source winget
Found PowerShell [Microsoft.PowerShell] Version 7.4.6
This application is licensed to you by its owner.
...
Successfully installed
Run Side-by-Side
PowerShell 7 installs to a different location than Windows PowerShell and uses a different executable name, so they coexist without any conflict.
# Windows PowerShell 5.1 executable
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
# PowerShell 7 executable
C:\Program Files\PowerShell\7\pwsh.exe
# Launch PowerShell 7 from anywhere
pwsh
# Launch Windows PowerShell from PowerShell 7
powershell.exe
In Windows Terminal, both appear as separate profiles. You can also pin separate taskbar shortcuts for each.
Update an Existing Installation
PowerShell 7 can update itself, or you can use winget to update to the latest version.
# Update via winget (run from any terminal)
winget upgrade --id Microsoft.PowerShell
# Update from within PowerShell 7 using the built-in update command (PS 7.2+)
# (Run pwsh.exe first, then:)
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
Verify Installation
After installation, confirm the version and check that the executable is accessible from PATH.
# Launch PowerShell 7
pwsh
# Verify version
$PSVersionTable.PSVersion
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
7 4 6
# Confirm executable path
Get-Command pwsh | Select-Object Source
# Check both are available
Get-Command powershell, pwsh | Select-Object Name, Source
Common Errors and Fixes
- Old modules not compatible with PowerShell 7: Some modules that work in Windows PowerShell 5.1 have not been updated for PowerShell 7. Common examples include older Exchange and SharePoint modules. You can use the Windows PowerShell compatibility layer:
Import-Module ModuleName -UseWindowsPowerShellto run 5.1-compatible modules in a PS7 session (with some limitations). For production scripts, test each module’s PS7 compatibility before migrating. - Profile path differs between versions: PowerShell 7’s profile is in
$env:USERPROFILE\Documents\PowerShell\Microsoft.PowerShell_profile.ps1while Windows PowerShell uses$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1. If your aliases and functions disappear after installing PS7, it’s because PS7 has its own separate profile file. Create a PS7 profile withNew-Item -Path $PROFILE -Forcefrom apwshsession and add your customizations there.
Related Cmdlets / See Also
Wrapping Up
Installing PowerShell 7 alongside Windows PowerShell 5.1 is safe, reversible, and takes less than five minutes. You get a modern shell with an active development roadmap while keeping backward compatibility. As a next step, open a pwsh session and run $PSVersionTable to confirm the new version, then create your PS7 profile with the same aliases and module imports you rely on in Windows PowerShell.


