What's New in PowerShell 7.5
PowerShell 7.5-preview.5 includes the following features, updates, and breaking changes. PowerShell 7.5 is built on .NET 9.0.100-rc.1.
For a complete list of changes, see the CHANGELOG in the GitHub repository.
Breaking Changes
- Fix
-OlderThan
and-NewerThan
parameters forTest-Path
when usingPathType
and date range (#20942) (Thanks @ArmaanMcleod!)- Previously
-OlderThan
would be ignored if specified together
- Previously
- Change
New-FileCatalog -CatalogVersion
default to 2 (#20428) (Thanks @ThomasNieto!) - Block getting help from network locations in restricted remoting sessions (#20593)
- The Windows installer now remembers installation options used and uses them to initialize options for the next installation (#20420) (Thanks @reduckted!)
ConvertTo-Json
now serializesBigInteger
as a number (#21000) (Thanks @jborean93!)
Updated modules
PowerShell 7.5-preview.5 includes the following updated modules:
- Microsoft.PowerShell.PSResourceGet v1.1.0-preview2
- PSReadLine v2.3.5
Tab completion improvements
Many thanks to @ArmaanMcleod and others for all their work to improve tab completion.
- Fall back to type inference when hashtable key-value cannot be retrieved from safe expression (#21184) (Thanks @MartinGC94!)
- Fix the regression when doing type inference for
$_
(#21223) (Thanks @MartinGC94!) - Expand
~
to$home
on Windows with tab completion (#21529) - Don't complete when declaring parameter name and class member (#21182) (Thanks @MartinGC94!)
- Prevent fallback to file completion when tab completing type names (#20084) (Thanks @MartinGC94)
- Add argument completer to
-Version
forSet-StrictMode
(#20554) (Thanks @ArmaanMcleod!) - Add
-Verb
argument completer forGet-Verb
/Get-Command
and refactorGet-Verb
(#20286) (Thanks @ArmaanMcleod) - Add
-Verb
argument completer forStart-Process
(#20415) (Thanks @ArmaanMcleod) - Add
-Scope
argument completer for*-Variable
,*-Alias
&*-PSDrive
commands (#20451) (Thanks @ArmaanMcleod) - Add
-Module
completion forSave-Help
/Update-Help
commands (#20678) (Thanks @ArmaanMcleod)
New cmdlets
- Add
ConvertTo-CliXml
andConvertFrom-CliXml
cmdlets (#21063) (Thanks @ArmaanMcleod!)
Web cmdlets improvements
- Fix to allow
-PassThru
and-Outfile
work together (#24086) (Thanks @jshigetomi!) - Add
OutFile
property inWebResponseObject
(#24047) (Thanks @jshigetomi!) - Show filename in
Invoke-WebRequest -OutFile -Verbose
(#24041) (Thanks @jshigetomi!) - Fix WebCmdlets when
-Body
is specified butContentType
is not (#23952) (Thanks @CarloToso!) - Fix
Invoke-WebRequest
to report correct size when-Resume
is specified (#20207) (Thanks @LNKLEO!) - Fix Web Cmdlets to allow
WinForm
apps to work correctly (#20606)
Other cmdlet improvements
- Enable
-NoRestart
to work withRegister-PSSessionConfiguration
(#23891) - Add
IgnoreComments
andAllowTrailingCommas
options toTest-Json
cmdlet (#23817) (Thanks @ArmaanMcleod!) - Get-Help may report parameters with
ValueFromRemainingArguments
attribute as pipeline-able (#23871) - Change type of
LineNumber
toulong
inSelect-String
(#24075) (Thanks @Snowman-25!) Get-Process
: Remove admin requirement for-IncludeUserName
(#21302) (Thanks @jborean93!)- Fix
Test-Path -IsValid
to check for invalid path and filename characters (#21358) - Add
RecommendedAction
toConciseView
of the error reporting (#20826) (Thanks @JustinGrote!) - Added progress bar for
Remove-Item
cmdlet (#20778) (Thanks @ArmaanMcleod!) - Fix
Test-Connection
due to .NET 8 changes (#20369) - Fix
Get-Service
non-terminating error message to include category (#20276) - Add
-Empty
and-InputObject
parameters toNew-Guid
(#20014) (Thanks @CarloToso!) - Add the alias
r
to the parameter-Recurse
for theGet-ChildItem
command (#20100) (Thanks @kilasuit!) - Add
LP
toLiteralPath
aliases for functions still missing it (#20820) - Add implicit localization fallback to
Import-LocalizedData
(#19896) (Thanks @chrisdent-de!) - Add
Aliases
to the properties shown up when formatting the help content of the parameter returned byGet-Help
(#20994) - Add
HelpUri
toRemove-Service
(#20476) - Fix completion crash for the SCCM provider (#20815, #20919, #20915) (Thanks @MartinGC94!)
- Fix regression in
Get-Content
when-Tail 0
and-Wait
are used together (#20734) (Thanks @CarloToso!) - Fix
Start-Process -PassThru
to make sure theExitCode
property is accessible for the returnedProcess
object (#20749) (Thanks @CodeCyclone!) - Fix
Group-Object
to use current culture for its output (#20608) - Fix
Group-Object
output using interpolated strings (#20745) (Thanks @mawosoft!) - Fix rendering of
DisplayRoot
for networkPSDrive
(#20793) - Fix
Copy-Item
progress to only show completed when all files are copied (#20517) - Fix UNC path completion regression (#20419) (Thanks @MartinGC94!)
- Report error if invalid
-ExecutionPolicy
is passed topwsh
(#20460) - Add WinGetCommandNotFound and CompletionPredictor modules to track usage (#21040)
- Add DateKind parameter to
ConvertFrom-Json
(#20925) (Thanks @jborean93!) - Add DirectoryInfo to the OutputType for New-Item (#21126) (Thanks @MartinGC94!)
- Fix
Get-Error
serialization of array values (#21085) (Thanks @jborean93!) - Fix
Test-ModuleManifest
so it can use a UNC path (#24115) - Fix
Get-TypeData
to write to the pipeline immediately instead of collecting data first (#24236) (Thanks @MartinGC94) - Add
-Force
parameter toResolve-Path
andConvert-Path
cmdlets to support wildcard hidden files #20981 (Thanks @ArmaanMcleod!)
Engine improvements
- Explicitly start and stop ANSI Error Color (#24065) (Thanks @JustinGrote!)
- Improve .NET overload definition of generic methods (#21326) (Thanks @jborean93!)
- Optimize the
+=
operation for a collection when it's an object array (#23901) (Thanks @jborean93!) - Add telemetry to check for specific tags when importing a module (#20371)
- Add
PSAdapter
andConsoleGuiTools
to module load telemetry allowlist (#20641) - Add Winget module to track usage (#21040)
- Ensure the filename is not null when logging WDAC ETW events (#20910) (Thanks @jborean93!)
- Fix four regressions introduced by the WDAC logging feature (#20913)
- Leave the input, output, and error handles unset when they are not redirected (#20853)
- Fix implicit remoting proxy cmdlets to act on common parameters (#20367)
- Include the module version in error messages when module is not found (#20144) (Thanks @ArmaanMcleod!)
- Fix
unixmode
to handlesetuid
andsticky
when file is not an executable (#20366) - Fix using assembly to use Path.Combine when constructing assembly paths (#21169)
- Validate the value for using namespace during semantic checks to prevent declaring invalid namespaces (#21162)
- Handle global tool specially when prepending
$PSHome
to PATH (#24228)
Experimental features
The following experimental features were converted to mainstream features in PowerShell 7.5-preview.5:
The following experimental features are included in PowerShell 7.5-preview.5:
- PSRedirectToVariable - Allow redirecting to a variable (#20381)
- PSNativeWindowsTildeExpansion - Add tilde expansion for windows native executables (#20402) (Thanks @domsleee!)
- PSSerializeJSONLongEnumAsNumber -
ConvertTo-Json
now treats large enums as numbers (#20999) (Thanks @jborean93!)
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.