How to enable or install Windows PowerShell 2.0 in Windows 11

Turn on Windows PowerShell 2.0 Engine in Windows Features on Windows 11 version 23H2 or earlier. Microsoft removed the feature from version 24H2 starting in August 2025, so newer PCs have only its temporary ps2DLC.zip package.

This guide covers both routes, the .NET Framework 3.5 dependency, how to start the 2.0 engine, and how to move old scripts off it.

How to enable or install Windows PowerShell 2.0 in Windows 11
Scroll this list to the Windows PowerShell 2.0 node on version 23H2 or earlier; Microsoft's example here has Hyper-V selected. (Image: Microsoft)

How to enable or install Windows PowerShell 2.0 in Windows 11

Your Windows 11 version decides the route. Press Windows + R, type winver.exe and press Enter to read it, then match it to a row.

Windows 11 version What to do What to expect
21H2, 22H2 or 23H2 Turn on Windows PowerShell 2.0 Engine in Windows Features, or use the Enable-WindowsOptionalFeature command The optional feature still exists. Version 23H2 Home and Pro left support in November 2025, and Enterprise and Education follow in November 2026.
24H2 with updates from August 2025 or later Migrate the script first. Use ps2DLC.zip only if that is not possible The optional feature is gone. Microsoft calls ps2DLC.zip a last-resort, temporary mitigation.
25H2, 26H1, 26H2 and later Migrate the script first. Treat ps2DLC.zip as the same last resort Microsoft says later Windows 11 releases do not include PowerShell 2.0.

Windows Insider preview builds lost the feature in July 2025, so they follow the second row.

Enable PowerShell 2.0 in Windows Features on Windows 11

Use this on version 23H2 or earlier. The dialog is the same one that turns on .NET Framework 3.5, which the engine depends on.

  1. Select Start and type Windows Features in the search bar.
  2. Open Turn Windows features on or off.
  3. Expand the Windows PowerShell 2.0 node in the list.
  4. Select the Windows PowerShell 2.0 Engine check box.
  5. Select the .NET Framework 3.5 (includes .NET 2.0 and 3.0) check box if it is clear.
  6. Select OK and wait for Windows to apply the changes.
  7. Restart your computer if Windows asks you to.

Enable PowerShell 2.0 with Enable-WindowsOptionalFeature

This does the same job from a terminal, which suits scripted setups on version 23H2 or earlier. Start by opening an elevated window: run PowerShell as administrator, then paste the command.

Enable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2 -All

-Online targets the running copy of Windows. -All also enables the parent feature, and -NoRestart can be added if you want to delay a required reboot.

You should see: The command ends without an error, and the check further down this page reports State : Enabled.

Enable-WindowsOptionalFeature command in an Administrator Windows PowerShell window, shown enabling Hyper-V
Swap Microsoft-Hyper-V for MicrosoftWindowsPowerShellV2 in this example, then answer Y at the restart prompt or add -NoRestart to delay it. (Image: Microsoft)

Install PowerShell 2.0 on Windows 11 24H2 with ps2DLC.zip

Microsoft offers this only as a last resort to unblock you while you migrate. The download link sits in its PowerShell 2.0 removal article (KB5065506), so take the file from that page and nowhere else.

  1. Open the Microsoft article and select the ps2DLC.zip link under Temporary mitigation.
  2. Extract the ZIP file to a folder of your choice.
  3. Start a PowerShell window as administrator.
  4. Change to the folder that holds the extracted files, for example cd C:\ps2DLC.
  5. Run .\loadGAC.ps1.
  6. Test the result with powershell.exe -Version 2 as shown below.

Microsoft tells users to move off PowerShell 2.0 as soon as possible after using this package. Plan the migration before you rely on it.

Install PowerShell 2.0 on Windows 11 24H2 with Microsoft's ps2DLC.zip steps
Microsoft labels this a last-resort temporary mitigation, and its five steps end with running .\loadGAC.ps1 from the extracted folder. (Image: Microsoft)

.NET Framework 3.5 requirement for PowerShell 2.0

The Windows PowerShell 2.0 engine needs .NET Framework 2.0.50727 at minimum, and .NET Framework 3.5 fulfils that. Windows 11 ships with .NET Framework 4, which does not run apps built for versions 1.1 through 3.5.

Windows 11 version How to get .NET Framework 3.5 Internet needed
25H2 and earlier Windows Features: select .NET Framework 3.5 (includes .NET 2.0 and 3.0) and select OK Yes, unless you use matching installation media
26H1 (build 28000) and later Standalone installer linked from Microsoft's Windows 11 .NET Framework 3.5 page. It is no longer a Windows component Yes, to download the installer

You do not need the two Windows Communication Foundation child items under .NET Framework 3.5 for the PowerShell engine.

.NET Framework 3.5 requirement for PowerShell 2.0 in the Windows Features prompt
Select Download and install this feature when an app asks for it; Windows fetches the files from Windows Update, so stay online. (Image: Microsoft)

How to check if PowerShell 2.0 is installed on Windows 11

Run this in an elevated PowerShell window. It reads the state of the optional feature on versions that still include it.

Get-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2

The State line reads either Enabled or Disabled. Any other result means the engine is not available through Windows Features on this build.

You should see: State : Enabled. On a PC that used ps2DLC.zip, rely on the version test in the next section instead.

Check if PowerShell 2.0 is installed by opening PowerShell with Run as administrator
Right-click Windows PowerShell in the Start search results and select Run as administrator before you run Get-WindowsOptionalFeature. (Image: Microsoft)

Run PowerShell in version 2.0 mode

Having the engine installed does not make it the default. You start it per session, and Windows PowerShell 5.1 stays the normal shell for everything else.

powershell.exe -Version 2
$PSVersionTable.PSVersion

The first line opens a new session on the 2.0 engine, and the second prints the version running in it. To run one script directly, use powershell.exe -Version 2 -File .\script.ps1.

You should see: The Major column shows 2. A 5 means Windows started PowerShell 5.1 because the 2.0 engine is not there.

You can check the PowerShell version the same way in any window. A script that starts with #requires -version 2 also launches the 2.0 engine when it is installed, and ignores that line when it is not.

Run PowerShell in version 2.0 mode with PowerShell.exe -Version 2
Microsoft's command for the 2.0 engine works at any command prompt, including Windows PowerShell and Cmd.exe, and the newest version stays the default. (Image: Microsoft)

Why was PowerShell 2.0 removed from Windows 11?

Microsoft's stated reasons are cleaning up legacy code, reducing the complexity of the PowerShell ecosystem and improving Windows security. The removal followed eight years of deprecation notices.

Date What changed
Windows 7 era PowerShell 2.0 ships as a built-in part of Windows 7
August 2017 Microsoft deprecates it in the Windows 10 Fall Creators Update, version 1709, and keeps it as an optional feature
June 2025 Microsoft repeats the deprecation notice on its Windows features list
July 2025 Windows Insider preview builds drop the feature
August 2025 Windows 11 version 24H2 stops including it
September 2025 Windows Server 2025 stops including it

PowerShell 2.0 vs PowerShell 5.1 vs PowerShell 7

Windows PowerShell and PowerShell are two separate products. Most scripts that ask for version 2 run unchanged on the 5.1 copy already on your PC.

Version Built on Runs on Status on Windows 11
Windows PowerShell 2.0 .NET Framework CLR 2.0 Windows Removed from 24H2 and later
Windows PowerShell 5.1 Full .NET Framework Windows only Included, supported, no new features
PowerShell 7 Modern .NET Windows, Linux and macOS Separate install, actively developed

If you are replacing an old toolchain, you can install PowerShell 7 beside 5.1 without changing the existing shell.

Is PowerShell 2.0 a security risk?

Leave PowerShell 2.0 off unless one named script or app still needs it. Microsoft has marked it as legacy since 2017 and lists improved Windows security among its reasons for removing it. The PowerShell team points to enhanced transcription logging and AMSI protection in Windows PowerShell 5.x as the security reasons to move.

Migrate PowerShell 2.0 scripts to PowerShell 5.1

Microsoft's primary guidance is to move instead of reinstalling. Most of this work is removing a version request that no longer does anything useful.

  1. Search your scripts, shortcuts and scheduled tasks for -Version 2 and -v 2.
  2. Delete that switch and run the script on PowerShell 5.1.
  3. Delete any #requires -version 2 line at the top of a script if it still runs correctly without it.
  4. Rebuild .NET 2.0 or 3.5 apps that host System.Management.Automation.dll against .NET Framework 4.6 or later.
  5. Change old installers to check for %systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe rather than a PowerShell 2.0 registry key.
  6. Update server products and third-party tools to a version that does not need PowerShell 2.0.

How to disable or remove PowerShell 2.0 in Windows 11

Clear the Windows PowerShell 2.0 Engine check box in Turn Windows features on or off, or use the command below in an elevated window. Windows PowerShell 5.1 keeps working either way.

Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2

This turns off the optional feature on versions that still include it. Microsoft's ps2DLC.zip steps do not list an uninstall command.

You should see: Get-WindowsOptionalFeature now reports State : Disabled.

PowerShell 2.0 not working on Windows 11

Windows PowerShell 2.0 is missing from Windows Features

Your build is on version 24H2 or later, where the optional feature no longer exists.

  1. Run winver.exe to confirm the version.
  2. Try the script on PowerShell 5.1 without -Version 2.
  3. Use ps2DLC.zip only if the script still fails.

powershell -Version 2 opens PowerShell 5.1 instead

Windows cannot find the 2.0 engine, so it starts its default version rather than failing.

  1. Run $PSVersionTable.PSVersion to confirm which version opened.
  2. Remove -Version 2 if the script behaves correctly on 5.1.
  3. Update any script that relies on behavior unique to 2.0.

.NET Framework 3.5 fails with 0x800f0906, 0x800f0907, 0x800f081f or 0x800F0922

Windows could not download the feature files, a policy blocked the download, the source files were missing, or setup failed while applying them.

  1. Open Microsoft's .NET Framework 3.5 error page and follow the steps for your code.
  2. Install from Windows installation media if the error remains or the PC is offline.
  3. Use media from the same Windows version, because a mismatch can leave the system unserviceable.

Running scripts is disabled when you run loadGAC.ps1

Restricted is the default execution policy on Windows client PCs, and it blocks all script files.

  1. Run Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process in the same window.
  2. Run Unblock-File -Path .\loadGAC.ps1 so RemoteSigned accepts the downloaded script.
  3. Run .\loadGAC.ps1 again, then close the window to discard the session policy.

An old installer says PowerShell 2.0 is required

Older software can try to install or enable PowerShell 2.0 during setup, which fails on current Windows versions.

  1. Check the vendor's site for a release that drops the PowerShell 2.0 requirement.
  2. Install that newer version instead of the old package.
  3. Use ps2DLC.zip only if no newer version exists.

Windows PowerShell 2.0 on Windows 11 FAQ

Is Windows PowerShell 2.0 available in Windows 11?

Only on version 23H2 and earlier as an optional feature. Microsoft removed it from version 24H2 starting in August 2025, and later Windows 11 releases do not include it. Those PCs can use the temporary ps2DLC.zip package from Microsoft as a last resort.

Why would someone enable PowerShell 2.0?

The usual reason is an old script or host program that cannot run on later versions. Apps compiled for CLR 2.0 cannot load newer PowerShell without changes, and some older server tools and installers still look for the 2.0 engine. Microsoft expected such cases to be rare.

Is PowerShell 2.0 safe to use?

It is a deprecated legacy component, so use it only for the one task that needs it. Microsoft lists improved Windows security among its reasons for removing it, and the PowerShell team points to transcription logging and AMSI protection in version 5.x as reasons to move.

Can PowerShell 2.0 be removed after enabling it?

Yes. Clear Windows PowerShell 2.0 Engine in Turn Windows features on or off, or run Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2 as administrator. Microsoft's ps2DLC.zip instructions do not include an uninstall command, so plan that route carefully.

What version of PowerShell comes with Windows 11 by default?

Windows 11 includes Windows PowerShell 5.1, the latest release of that product. Microsoft no longer adds features to it, but it remains supported with Windows. PowerShell 7 is a separate product that you install yourself, and it runs alongside version 5.1.

Do all scripts work in PowerShell 2.0?

No. Scripts that use features added in version 3.0 or later cannot run on the older engine. Going the other way is easier, because Microsoft says version 5.1 is backward-compatible for almost all commands and modules. Test the script on 5.1 before installing anything.

Is PowerShell 7 the same as Windows PowerShell?

No, they are two separate products. Windows PowerShell ships in Windows, uses the full .NET Framework and runs only on Windows. PowerShell 7 is built on modern .NET, runs on Windows, Linux and macOS, and is installed separately from the version in Windows.

What happens to a scheduled task that requests PowerShell 2.0 after removal?

Windows starts the default version, PowerShell 5.1, instead of the 2.0 engine. Most tasks keep working, though a script that depends on behavior unique to 2.0 can fail. Microsoft's fix is to remove the -Version 2 requirement from the task or script.

Philip Celasco

Philip is a Texas-based technology writer and IT administrator at Techdows.com with more than 10 years of experience creating practical content for everyday users and professionals. He specializes in web browsers, particularly Chromium-based platforms such as Google Chrome, Microsoft Edge, Brave, and Opera. Through his work as an IT administrator, Philip has hands-on experience managing devices, configuring browser policies, troubleshooting software and network issues, and helping people resolve problems that affect productivity and security. His articles are based on practical testing and real-world technical experience. He covers browser settings, extensions, performance problems, privacy controls, security features, and Windows troubleshooting. Outside work, Philip enjoys the quieter side of life in Texas and stepping away from the screen when he can. He has two kids, two cats and loves to play golf with his mother during the weekends.

Leave a Reply

Your email address will not be published. Required fields are marked *