Built on the .NET Framework, Windows PowerShell allows IT professionals to manage computers via commands or scripts, improving productivity through system automation.
What's New
- Nano server docker images aren't available for this release
- Added the ProgressAction parameter to the Common Parameters
- Update some PowerShell APIs to throw ArgumentException instead of ArgumentNullException when the argument is an empty string (#19215) (Thanks @xtqqczze!)
- Remove code related to #requires -pssnapin (#19320)
- Test-Json now uses JsonSchema.Net instead of Newtonsoft.Json.Schema. With this change, Test-Json no longer supports the older Draft 4 schemas. (#18141) (Thanks @gregsdennis!) For more information about JSON schemas, see JSON Schema documentation.
- Output from Test-Connection now includes more detailed information about TCP connection tests
- .NET introduced changes that affected Test-Connection. The cmdlet now returns an error about the need to use sudo on Linux platforms when using a custom buffer size (#20369)
- Experimental feature PSNativeCommandPreserveBytePipe is now mainstream. PowerShell now preserves the byte-stream data when redirecting the stdout stream of a native command to a file or when piping byte-stream data to the stdin stream of a native command.
- Change how relative paths in Resolve-Path are handled when using the RelativeBasePath parameter (#19755) (Thanks @MartinGC94!)
- Remove unused PSv2 code - removes TabExpansion function (#18337)
General Cmdlet Updates and Fixes
- Fix Group-Object output using interpolated strings (#20745) (Thanks @mawosoft!)
- Fix Start-Process -PassThru to make sure the ExitCode property is accessible for the returned Process object (#20749) (#20866) (Thanks @CodeCyclone!)
- Fix rendering of DisplayRoot for network PSDrive (#20793) (#20863)
Engine Updates and Fixes
- Ensure filename is not null when logging WDAC ETW events (#20910) (Thanks @jborean93!)
- Fix four regressions introduced by WDAC audit logging feature (#20913)
Build and Packaging Improvements
- Bump .NET 8 to version 8.0.101
- Update .NET SDK and dependencies for v7.4.1 (Internal 29142)
- Update cgmanifest for v7.4.1 (#20874)
- Update package dependencies for v7.4.1 (#20871)
- Set the rollForwardOnNoCandidateFx in runtimeconfig.json to roll forward only on minor and patch versions (#20689) (#20865)
- Remove RHEL7 publishing to packages.microsoft.com as it's no longer supported (#20849) (#20864)
- Fix the tab completion tests (#20867)
Previous Release Notes:
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)
Tests
- Allow system lock down test debug hook to work with new WLDP API (fixes system lock down tests) (#18962)
Build and Packaging Improvements
Update package versions.
- SHA256 Hashes of the release artifacts
- hashes.sha256
- D8CD0FE9D8462435D875B034D1DD3E0A1223CD6A62F867F4CE2FF4BE7D899491
- powershell_7.3.1-1.deb_amd64.deb
- C23B461A443AB87F9C11CE69FB625A01D7FD141F30CA42BEC7A86CEFED79EBAC
- powershell-7.3.1-1.cm.x86_64.rpm
- 9DC84952CEE2C3A8D644265A8E02EDE779DF986D222786182BDFE199CBD93149
- powershell-7.3.1-1.rh.x86_64.rpm
- BC5695F06121DBF8EBF56A842B8723E241FD5299BB34DB42B367A4157B9A9DA8
- powershell-7.3.1-linux-alpine-x64.tar.gz
- 043CBA55FC9208FCC51074D7174E295D4B46D2EDCABD03E107736BD6731DDF66
- powershell-7.3.1-linux-arm32.tar.gz
- 3AF65D5DB14D3B8D2C7F1E756821B036ED8629CC4BC59F7F6B260F6AF4DA72CA
- powershell-7.3.1-linux-arm64.tar.gz
- F0E03A128171E596A2387D86EF659F3A09D3700BE900D62BDEA3156D005EDA68
- powershell-7.3.1-linux-x64.tar.gz
- 68C2C0531A6796871DD7341B66C7085DDCC70570EB619DA3DBED769BCE4EE371
- powershell-7.3.1-linux-x64-fxdependent.tar.gz
- D6032C02D57DCBC3FAE5C0D2572DEA5682504811061BD1635A07B70B137E21FA
- powershell-7.3.1-osx-arm64.pkg
- ADB1E56FFF1E3B4BD1403E75089B92EF8B7432DCA6FE48CF94ED84A16936CD7E
- powershell-7.3.1-osx-arm64.tar.gz
- 66AE3E155043011A0CB7025E748C385C101C464FC105F39818DA678B702154BD
- powershell-7.3.1-osx-x64.pkg
- B6C8D4F8ED0CD1854CD00FE8A7816428093E71FDDC30546A3406C07F409C02AE
- powershell-7.3.1-osx-x64.tar.gz
- 18529E2EF589DACFA62B3ADAA0640EDABF5F31FE4CC3D484D5060F93166E6156
- PowerShell-7.3.1-win.msixbundle
- F2C9247D6108B42EBCD489FC2EF52078EB450CF7282E4B91B9525A334F38B233
- PowerShell-7.3.1-win-arm32.zip
- D808FBBB91E73F39BA1629D4339F2CC6E73D0C1A51EA5FF91BA8F68861B11A5E
- PowerShell-7.3.1-win-arm64.zip
- F86C1DA8896144A0D913B85B58157B419D3A89FF357EA191081D58DE944DE354
- PowerShell-7.3.1-win-fxdependent.zip
- 12A4E9100CF6448583D205714B262A0C3EA0CA4F2056ABEFD6831A6AFB923160
- PowerShell-7.3.1-win-fxdependentWinDesktop.zip
- 9938F6F95BBD0341B1279BA859B4BF643924759534DC6B527E15528E736E3149
- PowerShell-7.3.1-win-x64.msi
- CAD0026DF877F1B195B87AAE1858E8BC8BA759C19B7440CD62E1F5432665519F
- PowerShell-7.3.1-win-x64.zip
- 997EDF93ED570C0E6559588F2E3F52CB2B043535D7022128F2A734A2D904E3F5
- PowerShell-7.3.1-win-x86.msi
- 0266C3BCF23A35E5400C8DA28BE951986454D33973E56274D0E6217B0C56829A
- PowerShell-7.3.1-win-x86.zip
- 9FA3E39DC072093F0AB86EC75C91199D91B526BEFCE80722D6FB5F6614C21547