PowerShell 7.3 Released: New Features and Improvements for Native Command Handling
PowerShell 7.3, built on .NET 7 and supported for 18 months, introduces enhancements such as the $PSNativeCommandArgumentPassing variable for consistent native command argument handling, improved error processing with $PSNativeCommandUseErrorActionPreference, and aligns future releases with .NET 8, while PowerShell 7.2 remains the LTS version.
PowerShell 7.3 has been officially released. It is built on .NET 7 and, as a non‑LTS version, will receive support for 18 months. PowerShell 7.2 remains the LTS release with three years of support.
The primary goal of PowerShell 7.3 is to provide an excellent shell environment, and it brings several key improvements, especially for native (non‑cmdlet) commands.
Improved native command argument passing
Because Windows and Linux/macOS handle quoting differently, PowerShell 7.3 adds a new variable $PSNativeCommandArgumentPassing that lets users control how arguments are passed to native commands.
Consistent error handling for native commands
Native commands traditionally use exit codes and stderr for error messages, progress, warnings, etc. PowerShell 7.3 introduces $PSNativeCommandUseErrorActionPreference , which allows non‑zero exit codes to be treated as errors according to the current $ErrorActionPreference (e.g., Stop ), simplifying error handling.
This feature removes the need for scripts to manually inspect $LASTEXITCODE or wrap native command calls in complex helper functions.
For more details, see the Microsoft blog post about PowerShell 7.3. The next release, PowerShell 7.4, will be the next LTS version and is expected to be built on .NET 8.
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.