NOTE
- Snap packages are not available for this release.
- Nano server docker images are not available for this release.
Engine Updates and Fixes
- Add Instrumentation to
AmsiUtil
and make the init variable readonly (#18727) - Fix typo in
OutOfProcTransportManager.cs
(#18766) (Thanks @eltociear!) - Allow non-default encodings to be used in user’s script/code (#18605)
- Add
Dim
andDimOff
to$PSStyle
(#18653) - Change
exec
from alias to function to handle arbitrary arguments (#18567) - The command prefix should also be in the error color for
NormalView
(#18555) - Skip cloud files marked as “not on disk” during command discovery (#18152)
- Replace
UTF8Encoding(false)
withEncoding.Default
(#18356) (Thanks @xtqqczze!) - Fix
Switch-Process
to settermios
appropriate for child process (#18467) - On Unix, only explicitly terminate the native process if not in background (#18215)
- Treat
[NullString]::Value
as the string type when resolving methods (#18080) - Improve pseudo binding for dynamic parameters (#18030) (Thanks @MartinGC94!)
- Make experimental feature
PSAnsiRenderingFileInfo
stable (#18042) - Update to use version
2.21.0
of Application Insights. (#17903) - Do not preserve temporary results when no need to do so (#17856)
Performance
- Remove some static constants from
Utils.Separators
(#18154) (Thanks @iSazonov!) - Avoid using regex when unnecessary in
ScriptWriter
(#18348) - Use source generator for
PSVersionInfo
to improve startup time (#15603) (Thanks @iSazonov!) - Skip evaluating suggestions at startup (#18232)
- Avoid using
Regex
when not necessary (#18210)
General Cmdlet Updates and Fixes
- Update to use
ComputeCore.dll
for PowerShell Direct (#18194) - Replace
ArgumentNullException(nameof())
withArgumentNullException.ThrowIfNull()
(#18792)(#18784) (Thanks @CarloToso!) - Remove
TabExpansion
from remote session configuration (#18795) (Internal 23331) - WebCmdlets get Retry-After from headers if status code is 429 (#18717) (Thanks @CarloToso!)
- Implement
SupportsShouldProcess
inStop-Transcript
(#18731) (Thanks @JohnLBevan!) - Fix
New-Item -ItemType Hardlink
to resolve target to absolute path and not allow link to itself (#18634) - Add output types to Format commands (#18746) (Thanks @MartinGC94!)
- Fix the process
CommandLine
on Linux (#18710) (Thanks @jborean93!) - Fix
SuspiciousContentChecker.Match
to detect a pre-defined string when the text starts with it (#18693) - Switch
$PSNativeCommandUseErrorActionPreference
to$true
when feature is enabled (#18695) - Fix
Start-Job
to check the existence of working directory using the PowerShell way (#18675) - Webcmdlets add 308 to redirect codes and small cleanup (#18536) (Thanks @CarloToso!)
- Ensure
HelpInfo.Category
is consistently a string (#18254) - Remove
gcloud
from the legacy list because it’s resolved to a .ps1 script (#18575) - Add
gcloud
andsqlcmd
to list to use legacy argument passing (#18559) - Fix native access violation (#18545) (#18547) (Thanks @chrullrich!)
- Fix issue when completing the first command in a script with an empty array expression (#18355) (Thanks @MartinGC94!)
- Improve type inference of hashtable keys (#17907) (Thanks @MartinGC94!)
- Fix
Switch-Process
to copy the current env to the new process (#18452) - Fix
Switch-Process
error to include the command that is not found (#18443) - Update
Out-Printer
to remove all decorating ANSI escape sequences from PowerShell formatting (#18425) - Web cmdlets set default charset encoding to
UTF8
(#18219) (Thanks @CarloToso!) - Fix incorrect cmdlet name in the script used by
Restart-Computer
(#18374) (Thanks @urizen-source!) - Add the function
cd~
(#18308) (Thanks @GigaScratch!) - Fix type inference error for empty return statements (#18351) (Thanks @MartinGC94!)
- Fix the exception reporting in
ConvertFrom-StringData
(#18336) (Thanks @GigaScratch!) - Implement
IDisposable
inNamedPipeClient
(#18341) (Thanks @xtqqczze!) - Replace command-error suggestion with new implementation based on subsystem plugin (#18252)
- Remove the
ProcessorArchitecture
portion from the full name as it’s obsolete (#18320) - Make the fuzzy searching flexible by passing in the fuzzy matcher (#18270)
- Add
-FuzzyMinimumDistance
parameter toGet-Command
(#18261) - Improve startup time by triggering initialization of additional types on background thread (#18195)
- Fix decompression in web cmdlets (#17955) (Thanks @iSazonov!)
- Add
CustomTableHeaderLabel
formatting to differentiate table header labels that are not property names (#17346) - Remove the extra new line form List formatting (#18185)
- Minor update to the
FileInfo
table formatting on Unix to make it more concise (#18183) - Fix Parent property on processes with complex name (#17545) (Thanks @jborean93!)
- Make PowerShell class not affiliate with
Runspace
when declaring theNoRunspaceAffinity
attribute (#18138) - Complete the progress bar rendering in
Invoke-WebRequest
when downloading is complete or cancelled (#18130) - Display download progress in human readable format for
Invoke-WebRequest
(#14611) (Thanks @bergmeister!) - Update
WriteConsole
to not usestackalloc
for buffer with too large size (#18084) - Filter out compiler generated types for
Add-Type -PassThru
(#18095) - Fixing
CA2014
warnings and removing the warning suppression (#17982) (Thanks @creative-cloud!) - Make experimental feature
PSNativeCommandArgumentPassing
stable (#18044) - Make experimental feature
PSAMSIMethodInvocationLogging
stable (#18041) - Handle
PSObject
argument specially in method invocation logging (#18060) - Fix typos in
EventResource.resx
(#18063) (Thanks @eltociear!) - Make experimental feature
PSRemotingSSHTransportErrorHandling
stable (#18046) - Make experimental feature
PSExec
stable (#18045) - Make experimental feature
PSCleanBlock
stable (#18043) - Fix error formatting to use color defined in
$PSStyle.Formatting
(#17987) - Remove unneeded use of
chmod 777
(#17974) - Support mapping foreground/background
ConsoleColor
values to VT escape sequences (#17938) - Make
pwsh
server modes implicitly not show banner (#17921) - Add output type attributes for
Get-WinEvent
(#17948) (Thanks @MartinGC94!) - Remove 1 second minimum delay in
Invoke-WebRequest
for small files, and prevent file-download-error suppression. (#17896) (Thanks @AAATechGuy!) - Add completion for values in comparisons when comparing Enums (#17654) (Thanks @MartinGC94!)
- Fix positional argument completion (#17796) (Thanks @MartinGC94!)
- Fix member completion in attribute argument (#17902) (Thanks @MartinGC94!)
- Throw when too many parameter sets are defined (#17881) (Thanks @fflaten!)
- Limit searching of
charset
attribute inmeta
tag for HTML to first 1024 characters in webcmdlets (#17813) - Fix
Update-Help
failing silently with implicit non-US culture. (#17780) (Thanks @dkaszews!) - Add the
ValidateNotNullOrWhiteSpace
attribute (#17191) (Thanks @wmentha!) - Improve enumeration of inferred types in pipeline (#17799) (Thanks @MartinGC94!)
Code Cleanup
We thank the following contributors!
@MartinGC94, @CarloToso, @iSazonov, @xtqqczze, @turbedi, @trossr32, @eltociear, @AtariDreams, @jborean93
Tools
- Add a function to get the PR Back-port report (#18299)
- Add a workaround in automatic rebase workflow to continue on error (#18176)
- Update list of PowerShell team members in release tools (#17909)
- Don’t block if we fail to create the comment (#17869)
Tests
- Add
testexe.exe -echocmdline
to output raw command line received by the process on Windows (#18591) - Mark charset test as pending (#18511)
- Skip output rendering tests on Windows Server 2012 R2 (#18382)
- Increase timeout to make subsystem tests more reliable (#18380)
- Add missing -Tag ‘CI’ to describe blocks. (#18316)
- Use short path instead of multiple quotes in
Get-Item
test relying on node (#18250) - Replace the CIM class used for
-Amended
parameter test (#17884) (Thanks @sethvs!) - Stop ongoing progress-bar in
Write-Progress
test (#17880) (Thanks @fflaten!)
Build and Packaging Improvements
We thank the following contributors!
Documentation and Help Content
- Update readme and metadata for releases (#18780)(#18493)(#18393)(#18332)(#18128)(#17870)
- Remove ‘please’ and ‘Core’ from README.md per MS style guide (#18578) (Thanks @Rick-Anderson!)
- Change unsupported XML documentation tag (#18608)
- Change public API mention of
monad
to PowerShell (#18491) - Update security reporting policy to recommend security portal for more streamlined reporting (#18437)
- Change log for v7.3.0 (#18505) (Internal 23161)
- Replace
msh
in public API comment based documentation with PowerShell equivalent (#18483) - Add missing XML doc elements for methods in
RunspaceFactory
(#18450) - Change log for
v7.3.0-rc.1
(#18400) - Update change logs for
v7.2.7
andv7.0.13
(#18342) - Update the change log for v7.3.0-preview.8 (#18136)
- Add the
ConfigurationFile
option to the PowerShell help content (#18093) - Update help content about the PowerShell flag
-NonInteractive
(#17952)
SHA256 Hashes of the release artifacts
- hashes.sha256
- 2CC623DBD53546CBDF74C7667E127581DC0F4837570B7DF80C60BB612935D697
- powershell-7.4.0-preview.1-linux-alpine-x64.tar.gz
- 8BA796F6C6A6404ACA433371BCF0D96ADFE1992919A9A659E6180E8A10ED6B2C
- powershell-7.4.0-preview.1-linux-arm32.tar.gz
- 2E85535FC396139ABAF6D5C9037E01725AD3A34EDCBA6CBCC7F22241C050BECE
- powershell-7.4.0-preview.1-linux-arm64.tar.gz
- C947FF34AD633831B0AE2A30641E63797855D21A4E12CBCEE941AB65F9515973
- powershell-7.4.0-preview.1-linux-x64.tar.gz
- CEFE3952D2993E42F9EEE3E1A0AD5CF106FDBE0A821939F7695267218979D07B
- powershell-7.4.0-preview.1-linux-x64-fxdependent.tar.gz
- E2A6F444345B137BECD8669E7B970B11C2B520D2EE44E44860351F3CD748432E
- powershell-7.4.0-preview.1-osx-arm64.pkg
- 2CA714783D3AA39AE35DEFBAB48015BA921AD9D18A6841F72AB3BCFCA6606A9C
- powershell-7.4.0-preview.1-osx-arm64.tar.gz
- 6F68543868203D2C777BA3643B82CF95401E7BDE6CEF11CEEAAB8CFA430FB21A
- powershell-7.4.0-preview.1-osx-x64.pkg
- C1DF3CF5DB8FB2E1B69BE21170F1C373354F4BB88DF22D2021796D8DE0C58FE3
- powershell-7.4.0-preview.1-osx-x64.tar.gz
- 212084E9080DC7F9A2E3E21DFC1BAC792496D26AAF019990904D0AC18F48B354
- PowerShell-7.4.0-preview.1-win.msixbundle
- 5C8AF95E6E35129CF53513B35F10A0C453C1D5633C3AE5F1BEFFE4C9A1B14EFE
- PowerShell-7.4.0-preview.1-win-arm32.zip
- 9428CA176F0578F7EE2C291518E5107386A11D9785BB2131984702DD360FEECC
- PowerShell-7.4.0-preview.1-win-arm64.zip
- 02057D95D3FE4F728E00079916F1AAD208E40614CA520DBF64D84EFFBCD58207
- PowerShell-7.4.0-preview.1-win-fxdependent.zip
- A6B23D2BE0F33C6E1D5AAF64106F8DED81704E3B28D5E229AF831DC1E8F201B4
- PowerShell-7.4.0-preview.1-win-fxdependentWinDesktop.zip
- 6FFC4D4B7DA253212769AAA3EDF857B34D2386A10A9BDCEF017799DCA5504D49
- PowerShell-7.4.0-preview.1-win-x64.msi
- C525E9D5804489183BAFCC90FC195949727593FAA780CC30D1BC01CFEFE09D0D
- PowerShell-7.4.0-preview.1-win-x64.zip
- B0F6627D1A05D8833963487139EB667657429F78EAFCC90191CCD2D5347C8AF3
- PowerShell-7.4.0-preview.1-win-x86.msi
- 51EFBD58C6D7142A38D49D319EFA504DACE48B5681E98067CAFFBBF4151B84EE
- PowerShell-7.4.0-preview.1-win-x86.zip
- E7B8CB498993878327665337BD3B2102B059247CABA32FB7D07374CCDE953B43
- powershell-preview_7.4.0-preview.1-1.deb_amd64.deb
- 2518230120BDE23D124E8A8D30D560B14572A588AF57E441C4C24EA52CA79E2F
- powershell-preview-7.4.0_preview.1-1.cm.x86_64.rpm
- EF907D32124F25A40F01D57A8489C727BC13F65B3CBED8437121702D85B9401F
- powershell-preview-7.4.0_preview.1-1.rh.x86_64.rpm
- FDAE0EE7A1280E33C9178ED60E751B5532E1E14F4E6D081FB1108BC97CAAC916