Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
There are multiple ways to install PowerShell in Windows. Each install method is designed to support different scenarios and workflows. Choose the method that best suits your needs.
- WinGet - Recommended way to install PowerShell on Windows clients
- MSI package - Best choice for Windows Servers and enterprise deployment scenarios
- ZIP package - Easiest way to side load or install multiple versions
- Use this method for Windows Nano Server, Windows IoT, and Arm-based systems
- .NET Global tool - A good choice for .NET developers that install and use other global tools
- Microsoft Store package - An easy way to install for casual users of PowerShell but has limitations
PowerShell 7 installs to a new directory and runs side-by-side with Windows PowerShell 5.1. Newer versions of PowerShell 7 replace existing previous versions of PowerShell 7. Preview versions of PowerShell can be installed side-by-side with other versions of PowerShell. Newer preview versions replace existing previous preview versions.
PowerShell 7 supports updates through Microsoft Update. When you enable this feature, you'll get the latest PowerShell 7 updates in your traditional Microsoft Update (MU) management flow, whether that's with Windows Update for Business, WSUS, Microsoft Endpoint Configuration Manager, or the interactive MU dialog in Settings.
For more information, see the PowerShell Microsoft Update FAQ.
Install PowerShell using WinGet (recommended)
WinGet, the Windows Package Manager, is a command-line tool enables users to
discover, install, upgrade, remove, and configure applications on Windows client computers. This
tool is the client interface to the Windows Package Manager service. The winget command-line tool
is bundled with Windows 11 and modern versions of Windows 10 by default as the App Installer.
Note
See the winget documentation for a list of system requirements and install instructions.
winget isn't available on Windows Server 2022 or earlier versions. Windows Server 2025 includes
winget for Windows Server with Desktop Experience only.
The following commands can be used to install PowerShell using the published winget packages:
Search for the latest version of PowerShell
winget search --id Microsoft.PowerShell
Name Id Version Source
---------------------------------------------------------------
PowerShell Microsoft.PowerShell 7.5.4.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.5 winget
Install PowerShell or PowerShell Preview using the --id parameter
winget install --id Microsoft.PowerShell --source winget
winget install --id Microsoft.PowerShell.Preview --source winget
Note
On Windows systems using X86 or X64 processor, winget installs the MSI package. On systems using
the Arm64 processor, winget installs the Microsoft Store (MSIX) package.
Install the MSI package
To install PowerShell on Windows, use the following links to download the install package from GitHub.
Latest stable release:
Latest Preview release:
- PowerShell-7.6.0-preview.5-win-x64.msi
- PowerShell-7.6.0-preview.5-win-x86.msi
- PowerShell-7.6.0-preview.5-win-arm64.msi
Once downloaded, double-click the installer file and follow the prompts.
The installer creates a shortcut in the Windows Start Menu.
- By default the package is installed to
$Env:ProgramFiles\PowerShell\7- The install location is added to your
$Env:PATHenvironment variable
- The install location is added to your
- Preview releases of PowerShell 7 install to
$Env:ProgramFiles\PowerShell\7-preview - You can launch PowerShell via the Start Menu or
$Env:ProgramFiles\PowerShell\7\pwsh.exe
Note
To run PowerShell 7.5 side-by-side with other versions of PowerShell 7, use the ZIP install method to install the other version to a different folder.
Install the MSI package from the command line
MSI packages can be installed from the command line allowing administrators to deploy packages without user interaction. The MSI package includes the following properties to control the installation options:
USE_MU- This property has two possible values:1(default) - Opts into updating through Microsoft Update, WSUS, or Configuration Manager0- Don't opt into updating through Microsoft Update, WSUS, or Configuration Manager
ENABLE_MU1(default) - Opts into using Microsoft Update for Automatic Updates0- Don't opt into using Microsoft UpdateNote
Enabling updates may have been set in a previous installation or manual configuration. Using
ENABLE_MU=0doesn't remove the existing settings. Also, this setting can be overruled by Group Policy settings controlled by your administrator.
ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL- This property controls the option for adding theOpen PowerShellitem to the context menu in Windows Explorer.ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL- This property controls the option for adding theRun with PowerShellitem to the context menu in Windows Explorer.ENABLE_PSREMOTING- This property controls the option for enabling PowerShell remoting during installation.REGISTER_MANIFEST- This property controls the option for registering the Windows Event Logging manifest.ADD_PATH- This property controls the option for adding PowerShell to the Windows PATH environment variable.DISABLE_TELEMETRY- This property controls the option for disabling PowerShell's telemetry by setting thePOWERSHELL_TELEMETRY_OPTOUTenvironment variable.INSTALLFOLDER- This property controls the installation directory. The default is$Env:ProgramFiles\PowerShell\. This is the location where the installer creates the versioned subfolder. You can't change the name of the versioned subfolder.- For current releases, the versioned subfolder is
7 - For preview releases, the versioned subfolder is
7-preview
- For current releases, the versioned subfolder is
The following example shows how to silently install PowerShell with all the install options enabled.
msiexec.exe /package PowerShell-7.5.4-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1
For a full list of command-line options for Msiexec.exe, see Command line options.
Install from the ZIP package
PowerShell binary ZIP archives are provided to enable advanced deployment scenarios. Download one of the following ZIP archives from the current release page.
Depending on how you download the file you may need to unblock the file using the Unblock-File
cmdlet. Unzip the contents to the location of your choice and run pwsh.exe from there. Unlike
installing the MSI packages, installing the ZIP archive doesn't check for prerequisites. For
remoting over WSMan to work properly, ensure that you've met the prerequisites.
Use this method to install the ARM-based version of PowerShell on computers like the Microsoft
Surface Pro X. For best results, install PowerShell to the to $Env:ProgramFiles\PowerShell\7
folder.
Install as a .NET Global tool
If you already have the .NET Core SDK installed, you can install PowerShell as a .NET Global tool.
dotnet tool install --global PowerShell
The dotnet tool installer adds $HOME\.dotnet\tools to your $Env:PATH environment variable.
However, the currently running shell doesn't have the updated $Env:PATH. You can start PowerShell
from a new shell by typing pwsh.
Install from the Microsoft Store
PowerShell can be installed from the Microsoft Store. You can find the PowerShell release in the Microsoft Store site or in the Store application in Windows.
Benefits of the Microsoft Store package:
- Automatic updates built right into Windows
- Integrates with other software distribution mechanisms like Intune and Configuration Manager
- Can install on Windows systems using x86, x64, or Arm64 processors
Known limitations
By default, Windows Store packages run in an application sandbox that virtualizes access to some filesystem and registry locations. Changes to virtualized file and registry locations don't persist outside of the application sandbox.
This sandbox blocks all changes to the application's root folder. Any system-level configuration
settings stored in $PSHOME can't be modified. This includes the WSMAN configuration. This prevents
remote sessions from connecting to Store-based installs of PowerShell. User-level configurations and
SSH remoting are supported.
The following commands need write to $PSHOME. These commands aren't supported in a Microsoft Store
instance of PowerShell.
Register-PSSessionConfigurationUpdate-Help -Scope AllUsersEnable-ExperimentalFeature -Scope AllUsersSet-ExecutionPolicy -Scope LocalMachine
For more information, see Understanding how packaged desktop apps run on Windows.
Beginning in PowerShell 7.2, the PowerShell package is now exempt from file and registry virtualization. Changes to virtualized file and registry locations now persist outside of the application sandbox. However, changes to the application's root folder are still blocked.
Important
You must be running on Windows build 1903 or higher for this exemption to work.
Upgrade an existing installation
For best results when upgrading, you should use the same install method you used when you first
installed PowerShell. If you aren't sure how PowerShell was installed, you can check the value of
the $PSHOME variable, which always points to the directory containing PowerShell that the current
session is running.
- If the value is
$HOME\.dotnet\tools, PowerShell was installed with the .NET Global tool. - If the value is
$Env:ProgramFiles\PowerShell\7, PowerShell was installed as an MSI package or with WinGet on a computer with an X86 or x64 processor. - If the value starts with
$Env:ProgramFiles\WindowsApps\, PowerShell was installed as a Microsoft Store package or with WinGet on computer with an ARM processor. - If the value is anything else, it's likely that PowerShell was installed as a ZIP package.
If you installed via the MSI package, that information also appears in the Programs and Features Control Panel.
To determine whether PowerShell may be upgraded with WinGet, run the following command:
winget list --id Microsoft.PowerShell --upgrade-available
If there is an available upgrade, the output indicates the latest available version. Use the following command to upgrade PowerShell using WinGet:
winget upgrade --id Microsoft.PowerShell
Uninstall PowerShell 7
The process of uninstalling PowerShell 7 depends on the installation method you used.
If you installed PowerShell using WinGet, run the following command:
winget uninstall --id Microsoft.PowerShellIf you installed PowerShell using the MSI package, you can uninstall it from the Programs and Features Control Panel.
If you installed PowerShell using the ZIP package, delete the folder where you unzipped the files.
If you installed PowerShell from the Microsoft Store, open the Start menu and search for
PowerShell 7. Select Uninstall from the menu of options.If you installed PowerShell as a .NET Global tool, run the following command:
dotnet tool uninstall --global PowerShell
Supported versions of Windows
Microsoft supports PowerShell until PowerShell reaches end-of-support or the version of Windows reaches end-of-support.
The Docker images for the .NET SDK contain the latest versions of PowerShell. These images are available from the Microsoft Artifact Registry.
These images may not have the latest security updates. Microsoft recommends that you update the OS packages to the latest version to ensure the latest security updates are applied.
These images are provided for testing purposes. If you need a Docker image for a production workload, you should build and maintain your own.
Note
Support for a specific version of Windows is determined by the Microsoft Support Lifecycle policies. For more information, see:
You can check the version that you are using by running winver.exe.
Installation support
Microsoft supports the installation methods in this document. There may be other third-party methods of installation available from other sources. While those tools and methods may work, Microsoft can't support those methods.
Note
The installation commands in this article are for the latest stable release of PowerShell. To install a different version of PowerShell, adjust the command to match the version you need. The following links direct you to the latest release page for each version on GitHub.
- Stable release v7.5.x: https://aka.ms/powershell-release?tag=stable
- LTS release v7.4.x: https://aka.ms/powershell-release?tag=lts
- Preview release v7.6.0-preview.x: https://aka.ms/powershell-release?tag=preview
Download links for every package are found in the Assets section of the Release page. The Assets section may be collapsed, so you may need to click to expand it.