7.4.0-preview.1 - 2022-12-20
- Add Instrumentation to
AmsiUtiland 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
DimandDimOffto$PSStyle(#18653) - Change
execfrom 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-Processto settermiosappropriate for child process (#18467) - On Unix, only explicitly terminate the native process if not in background (#18215)
- Treat
[NullString]::Valueas the string type when resolving methods (#18080) - Improve pseudo binding for dynamic parameters (#18030) (Thanks @MartinGC94!)
- Make experimental feature
PSAnsiRenderingFileInfostable (#18042) - Update to use version
2.21.0of Application Insights. (#17903) - Do not preserve temporary results when no need to do so (#17856)
- Remove some static constants from
Utils.Separators(#18154) (Thanks @iSazonov!) - Avoid using regex when unnecessary in
ScriptWriter(#18348) - Use source generator for
PSVersionInfoto improve startup time (#15603) (Thanks @iSazonov!) - Skip evaluating suggestions at startup (#18232)
- Avoid using
Regexwhen not necessary (#18210)
- Update to use
ComputeCore.dllfor PowerShell Direct (#18194) - Replace
ArgumentNullException(nameof())withArgumentNullException.ThrowIfNull()(#18792)(#18784) (Thanks @CarloToso!) - Remove
TabExpansionfrom remote session configuration (#18795) (Internal 23331) - WebCmdlets get Retry-After from headers if status code is 429 (#18717) (Thanks @CarloToso!)
- Implement
SupportsShouldProcessinStop-Transcript(#18731) (Thanks @JohnLBevan!) - Fix
New-Item -ItemType Hardlinkto resolve target to absolute path and not allow link to itself (#18634) - Add output types to Format commands (#18746) (Thanks @MartinGC94!)
- Fix the process
CommandLineon Linux (#18710) (Thanks @jborean93!) - Fix
SuspiciousContentChecker.Matchto detect a pre-defined string when the text starts with it (#18693) - Switch
$PSNativeCommandUseErrorActionPreferenceto$truewhen feature is enabled (#18695) - Fix
Start-Jobto 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.Categoryis consistently a string (#18254) - Remove
gcloudfrom the legacy list because it's resolved to a .ps1 script (#18575) - Add
gcloudandsqlcmdto 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-Processto copy the current env to the new process (#18452) - Fix
Switch-Processerror to include the command that is not found (#18443) - Update
Out-Printerto 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
IDisposableinNamedPipeClient(#18341) (Thanks @xtqqczze!) - Replace command-error suggestion with new implementation based on subsystem plugin (#18252)
- Remove the
ProcessorArchitectureportion from the full name as it's obsolete (#18320) - Make the fuzzy searching flexible by passing in the fuzzy matcher (#18270)
- Add
-FuzzyMinimumDistanceparameter 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
CustomTableHeaderLabelformatting to differentiate table header labels that are not property names (#17346) - Remove the extra new line form List formatting (#18185)
- Minor update to the
FileInfotable 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
Runspacewhen declaring theNoRunspaceAffinityattribute (#18138) - Complete the progress bar rendering in
Invoke-WebRequestwhen downloading is complete or cancelled (#18130) - Display download progress in human readable format for
Invoke-WebRequest(#14611) (Thanks @bergmeister!) - Update
WriteConsoleto not usestackallocfor buffer with too large size (#18084) - Filter out compiler generated types for
Add-Type -PassThru(#18095) - Fixing
CA2014warnings and removing the warning suppression (#17982) (Thanks @creative-cloud!) - Make experimental feature
PSNativeCommandArgumentPassingstable (#18044) - Make experimental feature
PSAMSIMethodInvocationLoggingstable (#18041) - Handle
PSObjectargument specially in method invocation logging (#18060) - Fix typos in
EventResource.resx(#18063) (Thanks @eltociear!) - Make experimental feature
PSRemotingSSHTransportErrorHandlingstable (#18046) - Make experimental feature
PSExecstable (#18045) - Make experimental feature
PSCleanBlockstable (#18043) - Fix error formatting to use color defined in
$PSStyle.Formatting(#17987) - Remove unneeded use of
chmod 777(#17974) - Support mapping foreground/background
ConsoleColorvalues to VT escape sequences (#17938) - Make
pwshserver modes implicitly not show banner (#17921) - Add output type attributes for
Get-WinEvent(#17948) (Thanks @MartinGC94!) - Remove 1 second minimum delay in
Invoke-WebRequestfor 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
charsetattribute inmetatag for HTML to first 1024 characters in webcmdlets (#17813) - Fix
Update-Helpfailing silently with implicit non-US culture. (#17780) (Thanks @dkaszews!) - Add the
ValidateNotNullOrWhiteSpaceattribute (#17191) (Thanks @wmentha!) - Improve enumeration of inferred types in pipeline (#17799) (Thanks @MartinGC94!)
We thank the following contributors!
@MartinGC94, @CarloToso, @iSazonov, @xtqqczze, @turbedi, @trossr32, @eltociear, @AtariDreams, @jborean93
- Add TSAUpload for APIScan (#18446)
- Use Pattern matching in
ast.cs(#18794) (Thanks @MartinGC94!) - Cleanup
webrequestpscmdlet.common.cs(#18596) (Thanks @CarloToso!) - Unify
CreateFilepinvokein SMA (#18751) (Thanks @iSazonov!) - Cleanup
webresponseobject.common(#18785) (Thanks @CarloToso!) InvokeRestMethodCommand.Commoncleanup and merge partials (#18736) (Thanks @CarloToso!)- Replace
GetDirectoriesinCimDscParser(#14319) (Thanks @xtqqczze!) - WebResponseObject.Common merge partials atomic commits (#18703) (Thanks @CarloToso!)
- Enable pending test for
Start-Process(#18724) (Thanks @iSazonov!) - Remove one CreateFileW (#18732) (Thanks @iSazonov!)
- Replace
DllImportwithLibraryImportfor WNetAddConnection2 (#18721) (Thanks @iSazonov!) - Use File.OpenHandle() instead CreateFileW pinvoke (#18722) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport for WNetGetConnection (#18690) (Thanks @iSazonov!)
- Replace
DllImportwithLibraryImport- 1 (#18603) (Thanks @iSazonov!) - Replace DllImport with LibraryImport in SMA 3 (#18564) (Thanks @iSazonov!)
- Replace
DllImportwithLibraryImportin SMA - 7 (#18594) (Thanks @iSazonov!) - Use static
DateTime.UnixEpochandRandomNumberGenerator.Fill()(#18621) (Thanks @turbedi!) - Rewrite Get-FileHash to use static HashData methods (#18471) (Thanks @turbedi!)
- Replace DllImport with LibraryImport in SMA 8 (#18599) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 4 (#18579) (Thanks @iSazonov!)
- Remove NativeCultureResolver as dead code (#18582) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 6 (#18581) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 2 (#18543) (Thanks @iSazonov!)
- Use standard SBCS detection (#18593) (Thanks @iSazonov!)
- Remove unused pinvokes in RemoteSessionNamedPipe (#18583) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 5 (#18580) (Thanks @iSazonov!)
- Remove SafeRegistryHandle (#18597) (Thanks @iSazonov!)
- Remove
ArchitectureSensitiveAttributefrom the code base (#18598) (Thanks @iSazonov!) - Build COM adapter only on Windows (#18590)
- Include timer instantiation for legacy telemetry in conditional compiler statements in Get-Help (#18475) (Thanks @trossr32!)
- Convert
DllImporttoLibraryImportfor recycle bin, clipboard, and computerinfo cmdlets (#18526) - Replace DllImport with LibraryImport in SMA 1 (#18520) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in engine (#18496)
- Fix typo in InitialSessionState.cs (#18435) (Thanks @eltociear!)
- Remove remaining unused strings from resx files (#18448)
- Use new LINQ Order() methods instead of OrderBy(static x => x) (#18395) (Thanks @turbedi!)
- Make use of StringSplitOptions.TrimEntries when possible (#18412) (Thanks @turbedi!)
- Replace some
string.Join(string)calls withstring.Join(char)(#18411) (Thanks @turbedi!) - Remove unused strings from FileSystem and Registry providers (#18403)
- Use generic
GetValues<T>,GetNames<T>enum methods (#18391) (Thanks @xtqqczze!) - Remove unused resource strings from
SessionStateStrings(#18394) - Remove unused resource strings in
System.Management.Automation(#18388) - Use
Enum.HasFlagspart 1 (#18386) (Thanks @xtqqczze!) - Remove unused strings from parser (#18383)
- Remove unused strings from Utility module (#18370)
- Remove unused console strings (#18369)
- Remove unused strings from
ConsoleInfoErrorStrings.resx(#18367) - Code cleanup in
ContentHelper.Common.cs(#18288) (Thanks @CarloToso!) - Remove
FusionAssemblyIdentityandGlobalAssemblyCacheas they are not used (#18334) (Thanks @iSazonov!) - Remove some static initializations in
StringManipulationHelper(#18243) (Thanks @xtqqczze!) - Use
MemoryExtensions.IndexOfAnyinPSv2CompletionCompleter(#18245) (Thanks @xtqqczze!) - Use
MemoryExtensions.IndexOfAnyinWildcardPattern(#18242) (Thanks @xtqqczze!) - Small cleanup of the stub code (#18301) (Thanks @CarloToso!)
- Fix typo in
RemoteRunspacePoolInternal.cs(#18263) (Thanks @eltociear!) - Some more code cleanup related to the use of
PSVersionInfo(#18231) - Use
MemoryExtensions.IndexOfAnyinSessionStateInternal(#18244) (Thanks @xtqqczze!) - Use overload APIs that take
charinstead ofstringwhen it's possible (#18179) (Thanks @iSazonov!) - Replace
UTF8Encoding(false)withEncoding.Default(#18144) (Thanks @xtqqczze!) - Remove unused variables (#18058) (Thanks @AtariDreams!)
- Fix typo in PowerShell.Core.Instrumentation.man (#17963) (Thanks @eltociear!)
- Migrate
WinTrustfunctions to a common location (#17598) (Thanks @jborean93!)
- 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)
- Add
testexe.exe -echocmdlineto 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-Itemtest relying on node (#18250) - Replace the CIM class used for
-Amendedparameter test (#17884) (Thanks @sethvs!) - Stop ongoing progress-bar in
Write-Progresstest (#17880) (Thanks @fflaten!)
We thank the following contributors!
- Fix reference assembly generation logic for
Microsoft.PowerShell.Commands.Utility(#18818) - Update the cgmanifest (#18676)(#18521)(#18415)(#18408)(#18197)(#18111)(#18051)(#17913)(#17867)(#17934)(#18088)
- Bump
Microsoft.PowerShell.Nativeto the latest preview versionv7.4.0-preview.1(#18805) - Remove unnecessary reference to
System.Runtime.CompilerServices.Unsafe(#18806) - Update the release tag in
metadata.jsonfor next preview (#18799) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#18750)
- Bump .NET SDK to version
7.0.101(#18786) - Bump
cirrus-actions/rebasefrom 1.7 to 1.8 (#18788) - Bump
decode-uri-componentfrom 0.2.0 to 0.2.2 (#18712) - Bump Microsoft.CodeAnalysis.CSharp from 4.4.0-4.final to 4.4.0 (#18562)
- Bump Newtonsoft.Json from 13.0.1 to 13.0.2 (#18657)
- Apply expected file permissions to Linux files after Authenticode signing (#18643)
- Remove extra quotes after agent moves to pwsh 7.3 (#18577)
- Don't install based on build-id for RPM (#18560)
- Bump Microsoft.NET.Test.Sdk from 17.3.2 to 17.4.0 (#18487)
- Bump
minimatchfrom 3.0.4 to 3.1.2 (#18514) - Avoid depending on the pre-generated experimental feature list in private and CI builds (#18484)
- Update
release-MsixBundle.ymlto add retries (#18465) - Bump System.Data.SqlClient from 4.8.4 to 4.8.5 in /src/Microsoft.PowerShell.SDK (#18515)
- Bump to use internal .NET 7 GA build (#18508)
- Insert the pre-release nuget feed before building test artifacts (#18507)
- Add test for framework dependent package in release pipeline (#18506) (Internal 23139)
- Update to azCopy 10 (#18509)
- Fix issues with uploading changelog to GitHub release draft (#18504)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18442)
- Add authenticode signing for assemblies on linux builds (#18440)
- Do not remove
penimc_cor3.dllfrom build (#18438) - Bump
Microsoft.PowerShell.Nativefrom 7.3.0-rc.1 to 7.3.0 (#18405) - Allow two-digit revisions in
vPackpackage validation pattern (#18392) - Bump
Microsoft.CodeAnalysis.NetAnalyzers(#18363) - Bump to .NET 7 RC2 official version (#18328)
- Bump to .NET 7 to version
7.0.100-rc.2.22477.20(#18286) - Replace win7 runtime with win8 and remove APISets (#18304)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18312)
- Recurse the file listing. (#18277)
- Create tasks to collect and publish hashes for build files. (#18276)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18262)
- Remove ETW trace collection and uploading for CLR CAP (#18253)
- Do not cleanup
pwsh.deps.jsonfor framework dependent packages (#18226) - Add branch counter to APIScan build (#18214)
- Remove unnecessary native dependencies from the package (#18213)
- Remove XML files for min-size package (#18189)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18216)
- Bump
Microsoft.PowerShell.Nativefrom7.3.0-preview.1to7.3.0-rc.1(#18217) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#18201)
- Move ApiScan to compliance build (#18191)
- Fix the verbose message when using
dotnet-install.sh(#18184) - Bump Microsoft.NET.Test.Sdk from 17.3.1 to 17.3.2 (#18163)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18164)
- Make the link to minimal package blob public during release (#18158)
- Bump
Microsoft.CodeAnalysis.NetAnalyzers(#18147) - Update MSI exit message (#18137)
- Bump Microsoft.CodeAnalysis.CSharp from 4.4.0-1.final to 4.4.0-2.final (#18132)
- Re-enable building with Ready-to-Run (#18105)
- Update
DotnetRuntimeMetadata.jsonfor .NET 7 RC1 build (#18091) - Bump
Microsoft.CodeAnalysis.NetAnalyzers(#18096) - Add schema for cgmanifest.json (#18036)
- Bump
Microsoft.CodeAnalysis.CSharpfrom 4.3.0-3.final to 4.3.0 (#18012) - Add XML reference documents to NuPkg files for SDK (#17997)
- Bump Microsoft.NET.Test.Sdk from 17.3.0 to 17.3.1 (#18000)
- Bump
Microsoft.CodeAnalysis.NetAnalyzers(#17988) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#17983)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#17945)
- Make sure
Security.types.ps1xmlgets signed in release build (#17916) - Make Register Microsoft Update timeout (#17910)
- Merge changes from v7.0.12 v7.2.6 and v7.3.0-preview.7
- Bump Microsoft.NET.Test.Sdk from 17.2.0 to 17.3.0 (#17871)
- 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
monadto 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
mshin 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.7andv7.0.13(#18342) - Update the change log for v7.3.0-preview.8 (#18136)
- Add the
ConfigurationFileoption to the PowerShell help content (#18093) - Update help content about the PowerShell flag
-NonInteractive(#17952)