All major releases are still supported, and each major release has featured backwards compatibility with preceding versions.
Project Monad Initially using the code name "Monad", PowerShell was first shown publicly at the Professional Developers Conference in October 2003 in Los Angeles.
Windows PowerShell 1.0 Named Windows PowerShell, version 1.0 was released in November 2006 for
Windows XP SP2,
Windows Server 2003 SP1 and
Windows Vista and as an optional component of
Windows Server 2008.
2.0 , an
integrated development environment for PowerShell scripts Version 2.0 integrates with
Windows 7 and
Windows Server 2008 R2 and is released for
Windows XP with Service Pack 3,
Windows Server 2003 with Service Pack 2, and
Windows Vista with Service Pack 1. The version includes changes to the language and hosting API, in addition to including more than 240 new cmdlets. New features include: •
Remoting: Using
WS-Management, Allows scripts and cmdlets to be invoked on a remote machine or a large set of remote machines. •
Background jobs: Also called a
PSJob, it allows a command sequence (script) or pipeline to be invoked asynchronously. Jobs can be run on the local machine or on multiple remote machines. An interactive cmdlet in a PSJob blocks the execution of the job until user input is provided. •
Transactions: Enable cmdlet and developers can perform
transactional operations. Includes transaction cmdlets for starting, committing, and rolling back a
PSTransaction as well as features to manage and direct the transaction to the participating cmdlet and provider operations. The PowerShell Registry provider supports transactions. •
Advanced functions: Initially called "script cmdlets", these bundled cmdlets was later renamed "advanced functions". •
SteppablePipelines: This allows the user to control when the BeginProcessing(), ProcessRecord() and EndProcessing() functions of a cmdlet are called. •
Modules: Allows script developers and administrators to organize and partition scripts in self-contained, reusable units. Code from a
module executes in its own self-contained context and does not affect the state outside the module. Modules can define a restricted runspace environment by using a script. They have a persistent state as well as public and private members. •
Data language: A domain-specific subset of the language that allows data definitions to be decoupled from the scripts and allows
localized string resources to be imported into the script at runtime (
Script Internationalization). •
Script debugging: Allows
breakpoints to be set in a script or function. Breakpoints can be set on lines, line & columns, commands and read or write access of variables. It includes a set of cmdlets to control the breakpoints via script. •
Eventing: Allows listening, forwarding, and acting on management and system events. Eventing allows hosts to be notified about state changes to their managed entities. It also enables scripts to subscribe to
ObjectEvents,
PSEvents, and
WmiEvents and process them synchronously and asynchronously. •
Integrated Scripting Environment (ISE): GUI-based host that provides integrated debugger,
syntax highlighting, tab completion and up to 8 Unicode-enabled consoles (Runspaces) in a tabbed UI, as well as the ability to run only the selected parts in a script. •
Network file transfer: Native support for prioritized, throttled, and asynchronous transfer of files between machines using the
Background Intelligent Transfer Service (BITS). •
New cmdlets: Including Out-GridView, which displays tabular data in the
WPF GridView object, on systems that allow it, and if ISE is installed and enabled. •
New operators: -Split, -Join, and Splatting (@) operators. •
Exception handling with Try-Catch-Finally: Unlike other .NET languages, this allows multiple exception types for a single catch block. •
Nestable Here-Strings:
Here-Strings have been improved and can now nest. •
Block comments: Support for block comments using and #> as delimiters. •
New APIs: The new APIs range from handing more control over the parser and runtime to the host, to creating and managing collection of Runspaces (RunspacePools) as well as the ability to create
Restricted Runspaces which only allow a configured subset of PowerShell to be invoked. The new APIs also support participation in a transaction
3.0 Version 3.0 integrates with
Windows 8,
Windows Server 2012,
Windows 7 with Service Pack 1,
Windows Server 2008 with Service Pack 1, and
Windows Server 2008 R2 with Service Pack 1. Version 3.0 is part of a larger package, Windows Management Framework 3.0 (WMF3), which also contains the
WinRM service to support remoting. Windows Management Framework 3.0 was released for general availability in December 2012 and is included with Windows 8 and Windows Server 2012 by default. New features include: •
Scheduled jobs: Jobs can be scheduled to run on a preset time and date using the
Windows Task Scheduler infrastructure. •
Session connectivity: Sessions can be disconnected and reconnected. Remote sessions have become more tolerant of temporary network failures. •
Improved code writing:
Code completion (IntelliSense) and
snippets are added. ISE allows users to use dialog boxes to fill in parameters for cmdlets. •
Delegation support: Administrative tasks can be delegated to users who do not have permissions for that type of task, without granting them perpetual additional permissions. •
Help update: Help documentations can be updated via Update-Help command. •
Automatic module detection: Modules are loaded implicitly whenever a command from that module is invoked. Code completion works for unloaded modules as well. •
New commands: Dozens of new modules were added, including functionality to manage disks get-WmiObject win32_logicaldisk, volumes, firewalls, network connections, and printers, which had previously been performed via WMI.
4.0 Version 4.0 integrates with
Windows 8.1,
Windows Server 2012 R2,
Windows 7 SP1,
Windows Server 2008 R2 SP1 and
Windows Server 2012. New features include: •
Desired State Configuration: Declarative language extensions and tools that enable the deployment and management of configuration data for systems using the
DMTF management standards and
WS-Management Protocol •
New default execution policy: On Windows Servers, the default execution policy is now RemoteSigned. •
Save-Help: Help can now be saved for modules that are installed on remote computers. •
Enhanced debugging: The
debugger now supports debugging workflows, remote script execution and preserving debugging sessions across session reconnections. •
-PipelineVariable switch: A new ubiquitous parameter to expose the current pipeline object as a variable for programming purposes •
Network diagnostics to manage physical and
Hyper-V's virtualized
network switches •
Where and ForEach method syntax provides an alternate method of filtering and iterating over objects.
5.0 Version 5.0 was re-released with Windows Management Framework (WMF) 5.0 on February 24, 2016, following an initial release with a severe bug. Key features included: • The new class
keyword that creates
classes for
object-oriented programming • The new enum keyword that creates
enums • OneGet cmdlets to support the
Chocolatey package manager • Extending support for switch management to
layer 2 network switches. • Debugging for background jobs and instances hosted in other processes (each of which is called a "runspace") • Desired State Configuration (DSC) Local Configuration Manager (LCM) version 2.0 • DSC partial configurations • DSC Local Configuration Manager meta-configurations • Authoring of DSC resources using classes
5.1 Version 5.1 was released along with the
Windows 10 Anniversary Update on August 2, 2016, and in
Windows Server 2016. PackageManagement now supports proxies, PSReadLine now has ViMode support, and two new cmdlets were added: Get-TimeZone and Set-TimeZone. The LocalAccounts module allows for adding/removing local user accounts. A preview for was released for Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, and Windows Server 2012 R2 on July 16, 2016, and was released on January 19, 2017. Version 5.1 is the first to come in two editions of "Desktop" and "Core". The "Desktop" edition is the continuation product line that uses the .NET Framework, and the "Core" edition runs on .NET Core and is bundled with Windows Server 2016 Nano Server. In exchange for smaller footprint, the latter lacks some features such as the cmdlets to manage clipboard or join a computer to a domain, WMI version 1 cmdlets, Event Log cmdlets and profiles.
PowerShell Core 6.0 Renamed to PowerShell Core, version 6.0 was first announced on August 18, 2016, when Microsoft unveiled its decision to make the product
cross-platform, independent of Windows, free and open source. It has its own support lifecycle and adheres to the Microsoft lifecycle policy that is introduced with Windows 10: Only the latest version of PowerShell Core is supported. Microsoft expects to release one minor version for PowerShell Core 6.0 every six months. The most significant change in this version is the expansion to the other platforms. For Windows administrators, this version did not include any major new features. In an interview with the community on January 11, 2018, the development team was asked to list the top 10 most exciting things that would happen for a Windows IT professional who would migrate from version 5.1 to version 6.0. In response, Angel Calvo of Microsoft could only name two: cross-platform and open-source. PowerShell 6 changed to
UTF-8 as default encoding, with some exceptions. (version 7.4 changes more to UTF-8).
6.1 According to Microsoft, one of the new features of version 6.1 is "Compatibility with 1900+ existing cmdlets in Windows 10 and
Windows Server 2019." Still, no details of these cmdlets can be found in the full version of the change log. Microsoft later professes that this number was insufficient as PowerShell Core failed to replace Windows PowerShell 5.1 and gain traction on Windows.
PowerShell 7.0 Renamed to simply PowerShell, version 7 replaces the previous product lines: PowerShell Core and Windows PowerShell. The focus in development was to make version 7 a viable replacement for version 5.1, i.e. to have near parity with it in terms of compatibility with modules that ship with Windows. New features include: • The -Parallel switch for the ForEach-Object cmdlet to help handle parallel processing • A new error view • The Get-Error cmdlet • Pipeline chaining operators (&& and ||) that allow conditional execution of the next cmdlet in the pipeline • The
?: operator for
ternary operation • The ?? operator for
null coalescing • The ??= operator for null coalescing assignment • Cross-platform Invoke-DscResource (experimental) • Return of the Out-GridView cmdlet • Return of the -ShowWindow switch for the Get-Help
7.2 Version 7.2 is the next long-term support version, after version 7.0. It uses .NET 6.0 and features universal installer packages for Linux. On Windows, updates to version 7.2 and later come via the
Microsoft Update service; this feature has been missing from versions 6.0 through 7.1.
7.3 Version 7.3 includes some general Cmdlet updates and fixes, testing for framework dependent package in release pipeline as well as build and packaging improvements.
7.4 Version 7.4 is based on .NET 8 and is considered the long term support (LTS) release. Changes include: • webcmdlets default to
UTF-8 encoding (changing from
ASCII-superset
ISO-8859-1, that does not support
Unicode). Previously UTF-8 was default for other, but not all, things.
7.5 Version 7.5 is the latest stable release, released January 2025; it was built on .NET 9.0.1. It includes enhancements for performance, usability, and security. Key updates include improvements to tab completion, such as better type inference and new argument completers, as well as fixes for Invoke-WebRequest and Invoke-RestMethod. This release also adds the new ConvertTo-CliXml and ConvertFrom-CliXml cmdlets, and updates core modules like PSReadLine and Microsoft.PowerShell.PSResourceGet. Breaking changes include updates to Test-Path parameter handling, and default settings for New-FileCatalog. Prior to GA Release there were 5 preview releases and 1 RC release of PowerShell v7.5.0, with a full release blog post for this version expected soon.
7.6 Version 7.6 is based on .NET 9 and is the latest release. It was released on March 17, 2026. Changes include: • General cmdlet updates and fixes • Update PowerShell Profile DSC resource manifests to allow null for content • Add GitHub Actions annotations for Pester test failures • Fix Import-Module.Tests.ps1 to handle Arm32 platform == Comparison of cmdlets with similar commands ==