Built on the .NET Framework, Windows PowerShell allows IT professionals to manage computers via commands or scripts, improving productivity through system automation.
Installation Process:
After the package is installed, run pwsh from a terminal. Specific procedures for different Linux distributions can be found here.
Officially supported platform releases for PowerShell 7.1:
- Ubuntu 16.04/18.04/20.04 (including ARM64)
- Ubuntu 19.10 (via Snap package)
- Debian 9/10
- CentOS and RHEL 7/8
- Fedora 30
- Alpine 3.11+ (including ARM64)
What’s New
Security Fixes
- Block getting help from network locations in restricted remoting sessions (Internal 27698)
Build and Packaging Improvements
- Bump .NET SDK version to 7.0.401
- Update man page to match current help for pwsh (#20249)
Previous Release Notes:
PowerShell 7.3 is the next stable release, built on .NET 7.0.
PowerShell 7.3 includes the following features, updates, and breaking changes.
Breaking Changes and Improvements
- In this release, Windows APIs were updated or removed for compliance, which means that PowerShell 7.3 doesn’t run on Windows 7. While Windows 7 is no longer supported, previous builds could run on Windows 7.
- PowerShell Direct for Hyper-V is only supported on Windows 10, version 1809 and higher.
- Test-Connection is broken due to an intentional breaking change in .NET 7. It’s tracked by #17018
- Add clean block to script block as a peer to begin, process, and end to allow easy resource cleanup (#15177)
- Change default for $PSStyle.OutputRendering to Host
- Make Out-String and Out-File keep string input unchanged (#17455)
- Move the type data definition of System.Security.AccessControl.ObjectSecurity to the Microsoft.PowerShell.Security module (#16355) (Thanks @iSazonov!)
- Before this change, a user doesn’t need to explicitly import the Microsoft.PowerShell.Security module to use the code properties defined for an instance of System.Security.AccessControl.ObjectSecurity.
- After this change, a user needs to explicitly import Microsoft.PowerShell.Security module in order to use those code properties and code methods.
Tab completion improvements
- PowerShell 7.3 includes PSReadline 2.2.6, which enables Predictive IntelliSense by default. For more information, see about_PSReadLine.
- Fix tab completion within the script block specified for the ValidateScriptAttribute. (#14550) (Thanks @MartinGC94!)
- Added tab completion for loop labels after break/continue (#16438) (Thanks @MartinGC94!)
- Improve Hashtable completion in multiple scenarios (#16498) (Thanks @MartinGC94!)
- Parameter splatting
- Arguments parameter for Invoke-CimMethod
- FilterHashtable parameter for Get-WinEvent
- Property parameter for the CIM cmdlets
- Removes duplicates from member completion scenarios
- Support forward slashes in network share (UNC path) completion (#17111) (Thanks @sba923!)
- Improve member autocompletion (#16504) (Thanks @MartinGC94!)
- Prioritize ValidateSet completions over Enums for parameters (#15257) (Thanks @MartinGC94!)
- Add type inference support for generic methods with type parameters (#16951) (Thanks @MartinGC94!)
- Improve type inference and completions (#16963) (Thanks @MartinGC94!)
- Allows methods to be shown in completion results for ForEach-Object -MemberName
- Prevents completion on expressions that return void like ([void](“”))
- Allows non-default Class constructors to show up when class completion is based on the AST
- Improve type inference for $_ (#17716) (Thanks @MartinGC94!)
- Fix type inference for ICollection (#17752) (Thanks @MartinGC94!)
- Prevent braces from being removed when completing variables (#17751) (Thanks @MartinGC94!)
- Add completion for index expressions for dictionaries (#17619) (Thanks @MartinGC94!)
- Fix type completion for attribute tokens (#17484) (Thanks @MartinGC94!)
- Improve dynamic parameter tab completion (#17661) (Thanks @MartinGC94!)
- Avoid binding positional parameters when completing parameter in front of value (#17693) (Thanks @MartinGC94!)
Engine Updates and Fixes
- Add instrumentation to AmsiUtil and make the init variable readonly (#18727)
- Fix support for NanoServer due to the lack of AMSI (#18882)
- Adding missing guard for telemetry optout to avoid NullReferenceException when importing modules (#18949) (Thanks @powercode!)
- Fix VtSubstring helper method to correctly check chars copied (#19240)
- Fix ConciseView to handle custom ParserError error records (#19239)