PowerShell Changelog

What's new in PowerShell 7.4.2

Apr 12, 2024
  • General Cmdlet Updates and Fixes:
  • Revert "Adjust PUT method behavior to POST one for default content type in WebCmdlets" (#21049)
  • Fix regression with Get-Content when -Tail 0 and -Wait are both used (#20734) (Thanks @CarloToso!)
  • Fix Get-Error serialization of array values (#21085) (Thanks @jborean93!)
  • Fix a regression in Format-Table when header label is empty (#21156)
  • Engine Updates and Fixes:
  • Revert the PR #17856 (Do not preserve temporary results when no need to do so) (#21368)
  • Make sure the assembly/library resolvers are registered at early stage (#21361)
  • Handle the case that Runspace.DefaultRunspace is null when logging for WDAC Audit (#21344)
  • Fix PowerShell class to support deriving from an abstract class with abstract properties (#21331)
  • Fix the regression when doing type inference for $_ (#21223) (Thanks @MartinGC94!)
  • Build and Packaging Improvements:
  • Bump to .NET 8.0.4

New in PowerShell 7.5.0 Preview 2 (Feb 23, 2024)

  • Engine Updates and Fixes:
  • 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)
  • General Cmdlet Updates and Fixes:
  • Add WinGetCommandNotFound and CompletionPredictor modules to track usage (#21040)
  • ConvertFrom-Json: Add -DateKind parameter (#20925) (Thanks @jborean93!)
  • Add tilde expansion for windows native executables (#20402) (Thanks @domsleee!)
  • Add DirectoryInfo to the OutputType for New-Item (#21126) (Thanks @MartinGC94!)
  • Fix Get-Error serialization of array values (#21085) (Thanks @jborean93!)
  • Documentation and Help Content:
  • Update README.md and metadata.json for v7.5.0-preview.1 release (#21094)
  • Fix incorrect examples in XML docs in PowerShell.cs (#21173)
  • Update WG members (#21091)
  • Update changelog for v7.4.1 (#21098)

New in PowerShell 7.5.0 Preview 1 (Jan 19, 2024)

  • Breaking Changes:
  • Fix -OlderThan and -NewerThan parameters for Test-Path when using PathType and date range (#20942) (Thanks @ArmaanMcleod!)
  • Previously -OlderThan would be ignored if specified together
  • Change New-FileCatalog -CatalogVersion default to 2 (#20428) (Thanks @ThomasNieto!)
  • General Cmdlet Updates and Fixes:
  • 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!)
  • Add Aliases to the properties shown up when formatting the help content of the parameter returned by Get-Help (#20994)
  • Add implicit localization fallback to Import-LocalizedData (#19896) (Thanks @chrisdent-de!)
  • Change Test-FileCatalog to use File.OpenRead to better handle the case where the file is being used (#20939) (Thanks @dxk3355!)
  • Added -Module completion for Save-Help and Update-Help commands (#20678) (Thanks @ArmaanMcleod!)
  • Add argument completer to -Verb for Start-Process (#20415) (Thanks @ArmaanMcleod!)
  • Add argument completer to -Scope for *-Variable, *-Alias & *-PSDrive commands (#20451) (Thanks @ArmaanMcleod!)
  • Add argument completer to -Verb for Get-Verb and Get-Command (#20286) (Thanks @ArmaanMcleod!)
  • Fixing incorrect formatting string in CommandSearcher trace logging (#20928) (Thanks @powercode!)
  • 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 Start-Process -PassThru to make sure the ExitCode property is accessible for the returned Process object (#20749) (Thanks @CodeCyclone!)
  • Fix Group-Object output using interpolated strings (#20745) (Thanks @mawosoft!)
  • Fix rendering of DisplayRoot for network PSDrive (#20793)
  • Fix Invoke-WebRequest to report correct size when -Resume is specified (#20207) (Thanks @LNKLEO!)
  • Add PSAdapter and ConsoleGuiTools to module load telemetry whitelist (#20641)
  • Fix Web Cmdlets to allow WinForm apps to work correctly (#20606)
  • Block getting help from network locations in restricted remoting sessions (#20593)
  • Fix Group-Object to use current culture for its output (#20608)
  • Add argument completer to -Version for Set-StrictMode (#20554) (Thanks @ArmaanMcleod!)
  • Fix Copy-Item progress to only show completed when all files are copied (#20517)
  • Fix UNC path completion regression (#20419) (Thanks @MartinGC94!)
  • Add telemetry to check for specific tags when importing a module (#20371)
  • Report error if invalid -ExecutionPolicy is passed to pwsh (#20460)
  • Add HelpUri to Remove-Service (#20476)
  • Fix unixmode to handle setuid and sticky when file is not an executable (#20366)
  • Fix Test-Connection due to .NET 8 changes (#20369)
  • Fix implicit remoting proxy cmdlets to act on common parameters (#20367)
  • Set experimental features to stable for 7.4 release (#20285)
  • Revert changes to continue using BinaryFormatter for Out-GridView (#20300)
  • Fix Get-Service non-terminating error message to include category (#20276)
  • Prevent Export-CSV from flushing with every input (#20282) (Thanks @Chris--A!)
  • Fix a regression in DSC (#20268)
  • Include the module version in error messages when module is not found (#20144) (Thanks @ArmaanMcleod!)
  • Add -Empty and -InputObject parameters to New-Guid (#20014) (Thanks @CarloToso!)
  • Remove the comment trigger from feedback provider (#20136)
  • Prevent fallback to file completion when tab completing type names (#20084) (Thanks @MartinGC94!)
  • Add the alias r to the parameter -Recurse for the Get-ChildItem command (#20100) (Thanks @kilasuit!)
  • Tools:
  • Make sure feedback link in the bot's comment is clickable (#20878) (Thanks @floh96!)
  • Fix bot so anyone who comments will remove the "Resolution-No Activity" label (#20788)
  • Fix bot configuration to prevent multiple comments about "no activity" (#20758)
  • Add bot logic for closing GitHub issues after 6 months of "no activity" (#20525)
  • Refactor bot for easier use and updating (#20805)
  • Configure bot to add survey comment for closed issues (#20397)
  • Tests:
  • Suppress error output from Set-Location tests (#20499)
  • Fix typo in FileCatalog.Tests.ps1 (#20329) (Thanks @eltociear!)
  • Continue to improve tests for release automation (#20182)
  • Skip the test on x86 as InstallDate is not visible on Wow64 (#20165)
  • Harden some problematic release tests (#20155)
  • Documentation and Help Content:
  • Include information about upgrading in README (#20993)
  • Expand "iff" to "if-and-only-if" in XML doc content (#20852)
  • Update LTS links in README.md to point to the v7.4 packages (#20839) (Thanks @kilasuit!)
  • Update README.md to improve readability (#20553) (Thanks @AnkitaSikdar005!)
  • Fix link in docs/community/governance.md (#20515) (Thanks @suravshresth!)
  • Update ADOPTERS.md (#20555) (Thanks @AnkitaSikdar005!)
  • Fix a typo in ADOPTERS.md (#20504, #20520) (Thanks @shruti-sen2004!)
  • Correct grammatical errors in README.md (#20509) (Thanks @alienishi!)
  • Add 7.3 change

New in PowerShell 7.4.1 (Jan 12, 2024)

  • 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)

New in PowerShell 7.4.0 (Nov 16, 2023)

  • General Cmdlet Updates and Fixes:
  • Added a missing ConfigureAwait(false) call to webcmdlets so they don't block (#20622)
  • Fix Group-Object so output uses current culture (#20623)
  • Block getting help from network locations in restricted remoting sessions (#20615)

New in PowerShell 7.3.9 (Oct 26, 2023)

  • Build and Packaging Improvements:
  • Bump .NET 7 to version 7.0.403:
  • Use correct agent pool for downloading from Azure blob
  • Remove a timeout value from ADO pipeline stage to resolve a syntax issue
  • Update .NET 7 and manifests (Internal 28148)
  • Add SBOM for release pipeline (#20519) (#20573)
  • Increase timeout when publishing packages to pacakages.microsoft.com (#20470) (#20572)
  • Use fxdependent-win-desktop runtime for compliance runs (#20326) (#20571)

New in PowerShell 7.4.0 RC 1 (Oct 25, 2023)

  • General Cmdlet Updates and Fixes:
  • Fix Test-Connection due to .NET 8 changes (#20369) (#20531)
  • Add telemetry to check for specific tags when importing a module (#20371) (#20540)
  • Fix Copy-Item progress to only show completed when all files are copied (#20517) (#20544)
  • Fix unixmode to handle setuid and sticky when file is not an executable (#20366) (#20537)
  • Fix UNC path completion regression (#20419) (#20541)
  • Fix implicit remoting proxy cmdlets to act on common parameters (#20367) (#20530)
  • Fix Get-Service non-terminating error message to include category (#20276) (#20529)
  • Fixing regression in DSC (#20268) (#20528)

New in PowerShell 7.3.8 (Oct 10, 2023)

  • Security Fixes:
  • Block getting help from network locations in restricted remoting sessions (Internal 27698)

New in PowerShell 7.4.0 Preview 6 (Sep 28, 2023)

  • General Cmdlet Updates and Fixes:
  • Set approved experimental features to stable for 7.4 release (#20362)
  • Revert changes to continue using BinaryFormatter for Out-GridView (#20360)
  • Remove the comment trigger from feedback provider (#20346)
  • Tests:
  • Continued improvement to tests for release automation (#20259)
  • Skip the test on x86 as InstallDate is not visible on Wow64 (#20255)
  • Harden some problematic release tests (#20254)
  • Build and Packaging Improvements:
  • Move to .NET 8.0.100-rc.1.23463.5

New in PowerShell 7.4.0 Preview 6 (Sep 28, 2023)

  • General Cmdlet Updates and Fixes:
  • Set approved experimental features to stable for 7.4 release (#20362)
  • Revert changes to continue using BinaryFormatter for Out-GridView (#20360)
  • Remove the comment trigger from feedback provider (#20346)
  • Tests:
  • Continued improvement to tests for release automation (#20259)
  • Skip the test on x86 as InstallDate is not visible on Wow64 (#20255)
  • Harden some problematic release tests (#20254)
  • Build and Packaging Improvements:
  • Move to .NET 8.0.100-rc.1.23463.5

New in PowerShell 7.3.7 (Sep 20, 2023)

  • Build and Packaging Improvements:
  • Bump .NET SDK version to 7.0.401
  • Documentation and Help Content:
  • Update man page to match current help for pwsh (#20249)

New in PowerShell 7.4.0 Preview 5 (Aug 21, 2023)

  • Breaking Changes:
  • Change how relative paths in Resolve-Path are handled when using the RelativeBasePath parameter (#19755) (Thanks @MartinGC94!)
  • Engine Updates and Fixes:
  • Fix dynamic parameter completion (#19510) (Thanks @MartinGC94!)
  • Use OrdinalIgnoreCase to lookup script breakpoints (#20046) (Thanks @fflaten!)
  • Guard against null or blank path components when adding to module path (#19922) (Thanks @stevenebutler!)
  • Fix deadlock when piping to shell associated file extension (#19940)
  • Fix completion regression for filesystem paths with custom PSDrive names (#19921) (Thanks @MartinGC94!)
  • Add completion for variables assigned by the Data statement (#19831) (Thanks @MartinGC94!)
  • Fix a null reference crash in completion code (#19916) (Thanks @MartinGC94!)
  • General Cmdlet Updates and Fixes:
  • Fix Out-GridView by implementing Clone() method to replace old use of binary format serialization (#20050)
  • Support Unix domain socket in WebCmdlets (#19343) (Thanks @CarloToso!)
  • Wait-Process: add -Any and -PassThru parameters (#19423) (Thanks @dwtaber!)
  • Added the switch parameter -CaseInsensitive to Select-Object and Get-Unique cmdlets (#19683) (Thanks @ArmaanMcleod!)
  • Restore-Computer and Stop-Computer should fail with error when not running via sudo on Unix (#19824)
  • Add Help proxy function for non-Windows platforms (#19972)
  • Remove input text from the error message resulted by SecureString and PSCredential conversion failure (#19977) (Thanks @ArmaanMcleod!)
  • Add Microsoft.PowerShell.PSResourceGet to the telemetry module list (#19926)
  • Code Cleanup:
  • We thank the following contributors: @eltociear, @Molkree, @MartinGC94
  • Tools
  • Give the assignPRs workflow write permissions (#20021)
  • Tests:
  • Additional test hardening for tests which fail in release pass. (#20093)
  • Don't use a completion which has a space in it (#20064)
  • Fixes for release tests (#20028)
  • Remove spelling CI in favor of GitHub Action (#19973)
  • Hide expected error for negative test on windows for script extension (#19929)
  • Add more debugging to try to determine why these test fail in release build. (#19829)
  • Build and Packaging Improvements:
  • Update ThirdPartyNotices for 7.4.0-preview.5
  • Update PSResourceGet to 0.5.24-beta24 (#20118)
  • Fix build after the change to remove win-arm32 (#20102)
  • Add comment about pinned packages (#20096)
  • Bump to .NET 8 Preview 7 (#20092)
  • Remove Win-Arm32 from release build. (#20095)
  • Add alpine framework dependent package (#19995)
  • Bump JsonSchema.Net from 4.1.8 to 5.1.3 (#20089)
  • Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.0 (#20088)
  • Move build to .NET 8 preview 6 (#19991)
  • Bump Microsoft.Management.Infrastructure from 2.0.0 to 3.0.0-preview.1 (#20081)
  • Bump Markdig.Signed from 0.31.0 to 0.32.0 (#20076)
  • Auto assign PR Maintainer (#20020)
  • Delete rule that was supposed to round-robin assign a maintainer (#20019)
  • Update the cgmanifest (#20012)
  • Update the cgmanifest (#20008)
  • Bump JsonSchema.Net from 4.1.7 to 4.1.8 (#20006)
  • Bump JsonSchema.Net from 4.1.6 to 4.1.7 (#20000)
  • Add mariner arm64 package build to release build (#19946)
  • Check for pre-release packages when it's a stable release (#19939)
  • Make PR creation tool use --web because it is more reliable (#19944)
  • Update to the latest NOTICES file (#19971)
  • Update variable used to bypass the blocking check for multiple NuGet feeds for release pipeline (#19963)
  • Update variable used to bypass the blocking check for multiple NuGet feeds (#19967)
  • Update README.md and metadata.json for release v7.2.13 and v7.3.6 (#19964)
  • Don't publish notice on failure because it prevent retry (#19955)
  • Change variable used to bypass nuget security scanning (#19954)
  • Update the cgmanifest (#19924)
  • Publish rpm package for rhel9 (#19750)
  • Bump XunitXml.TestLogger from 3.0.78 to 3.1.11 (#19900)
  • Bump JsonSchema.Net from 4.1.5 to 4.1.6 (#19885)
  • Bump xunit from 2.4.2 to 2.5.0 (#19902)
  • Remove HostArchitecture dynamic parameter for osxpkg (#19917)
  • FabricBot: Onboarding to GitOps.ResourceManagement because of FabricBot decommissioning (#19905)
  • Change variable used to bypass nuget security scanning (#19907)
  • Checkout history for markdown lint check (#19908)
  • Switch to GitHub Action for linting markdown (#19899)
  • Bump xunit.runner.visualstudio from 2.4.5 to 2.5.0 (#19901)
  • Add runtime and packaging type info for mariner2 arm64 (#19450)
  • Update to the latest NOTICES file (#19856)
  • Documentation and Help Content:
  • Update README.md and metadata.json for 7.4.0-preview.4 release (#19872)
  • Fix grammatical issue in ADOPTERS.md (#20037) (Thanks @nikohoffren!)
  • Replace docs.microsoft.com URLs in code with FWLinks (#19996)
  • Change docs.microsoft.com to learn.microsoft.com (#19994)
  • Update man page to match current help for pwsh (#19993)
  • Merge 7.3.5, 7.3.6, 7.2.12 and 7.2.13 changelogs (#19968)
  • Fix ///-comments that violate the docs schema (#19957)
  • Update the link for getting started in README.md (#19932)
  • Migrate user docs to the PowerShell-Docs repository (#19871)

New in PowerShell 7.3.6 (Jul 13, 2023)

  • Bump .NET to 7.0.306
  • Update Notices file
  • Don't publish notice on failure because it prevents retry
  • Bump .NET to 7.0.306 (#19945)
  • Remove the property disabling optimization (#19952)
  • Add ProductCode in registry for MSI install (#19951)
  • Update variable used to bypass the blocking check for multiple NuGet feeds (#19953)
  • Change System.Security.AccessControl preview version to stable version (#19931)

New in PowerShell 7.4.0 Preview 4 (Jun 30, 2023)

  • Breaking Changes:
  • Test-Json: Use JsonSchema.Net (System.Text.Json) instead of NJsonSchema (Newtonsoft.Json) (#18141) (Thanks @gregsdennis!)
  • Test-Connection: Increase output detail when performing a TCP test (#11452) (Thanks @jackdcasey!)
  • Engine Updates and Fixes:
  • Fix native executables not redirecting to file (#19842)
  • Add a new experimental feature to control native argument passing style on Windows (#18706)
  • Fix TabExpansion2 variable leak when completing variables (#18763) (Thanks @MartinGC94!)
  • Enable completion of variables across ScriptBlock scopes (#19819) (Thanks @MartinGC94!)
  • Fix completion of the foreach statement variable (#19814) (Thanks @MartinGC94!)
  • Fix variable type inference precedence (#18691) (Thanks @MartinGC94!)
  • Fix member completion for PowerShell Enum class (#19740) (Thanks @MartinGC94!)
  • Fix parsing for array literals in index expressions in method calls (#19224) (Thanks @MartinGC94!)
  • Fix incorrect string to type conversion (#19560) (Thanks @MartinGC94!)
  • Fix slow execution when many breakpoints are used (#14953) (Thanks @nohwnd!)
  • Add a public API for getting locations of PSModulePath elements (#19422)
  • Add WDAC Audit logging (#19641)
  • Improve path completion (#19489) (Thanks @MartinGC94!)
  • Fix an indexing out of bound error in CompleteInput for empty script input (#19501) (Thanks @MartinGC94!)
  • Improve variable completion performance (#19595) (Thanks @MartinGC94!)
  • Allow partial culture matching in Update-Help (#18037) (Thanks @dkaszews!)
  • Fix the check when reading input in NativeCommandProcessor (#19614)
  • Add support of respecting $PSStyle.OutputRendering on the remote host (#19601)
  • Support byte stream piping between native commands and file redirection (#17857)
  • General Cmdlet Updates and Fixes:
  • Disallow negative values for Get-Content cmdlet parameters -Head and -Tail (#19715) (Thanks @CarloToso!)
  • Make Update-Help throw proper error when current culture is not associated with a language (#19765) (Thanks @josea!)
  • Do not require activity when creating a completed progress record (#18474) (Thanks @MartinGC94!)
  • WebCmdlets: Add alias for -TimeoutSec to -ConnectionTimeoutSeconds and add -OperationTimeoutSeconds (#19558) (Thanks @stevenebutler!)
  • Avoid checking screen scraping on non-Windows platforms before launching native app (#19812)
  • Add reference to PSResourceGet (#19597)
  • Add FileNameStar to MultipartFileContent in WebCmdlets (#19467) (Thanks @CarloToso!)
  • Add ParameterSetName for the -Detailed parameter of Test-Connection (#19727)
  • Remove the property disabling optimization (#19701)
  • Filter completion for enum parameter against ValidateRange attributes (#17750) (Thanks @fflaten!)
  • Small cleanup Invoke-RestMethod (#19490) (Thanks @CarloToso!)
  • Fix wildcard globbing in root of device paths (#19442) (Thanks @MartinGC94!)
  • Add specific error message that creating Junctions requires absolute path (#19409)
  • Fix array type parsing in generic types (#19205) (Thanks @MartinGC94!)
  • Improve the verbose message of WebCmdlets to show correct HTTP version (#19616) (Thanks @CarloToso!)
  • Fix HTTP status from 409 to 429 for WebCmdlets to get retry interval from Retry-After header. (#19622) (Thanks @mkht!)
  • Remove minor versions from PSCompatibleVersions (#18635) (Thanks @xtqqczze!)
  • Update JsonSchema.Net version to 4.1.0 (#19610) (Thanks @gregsdennis!)
  • Allow combining of -Skip and -SkipLast parameters in Select-Object cmdlet. (#18849) (Thanks @ArmaanMcleod!)
  • Fix constructing PSModulePath if a sub-path has trailing separator (#13147)
  • Add Get-SecureRandom cmdlet (#19587)
  • Fix New-Item to re-create Junction when -Force is specified (#18311) (Thanks @GigaScratch!)
  • Improve Hashtable key completion for type constrained variable assignments, nested Hashtables and more (#17660) (Thanks @MartinGC94!)
  • Set-Clipboard -AsOSC52 for remote usage (#18222) (Thanks @dkaszews!)
  • Refactor MUIFileSearcher.AddFiles in the help related code (#18825) (Thanks @xtqqczze!)
  • Set SetLastError to true for symbolic and hard link native APIs (#19566)
  • Fix Get-AuthenticodeSignature -Content to not roundtrip the bytes to a Unicode string and then back to bytes (#18774) (Thanks @jborean93!)
  • WebCmdlets: Rename -TimeoutSec to -ConnectionTimeoutSeconds (with alias) and add -OperationTimeoutSeconds (#19558) (Thanks @stevenebutler!)
  • Tools:
  • Add Git mailmap for Andy Jordan (#19469)
  • Add backport function to release tools (#19568)
  • Tests:
  • Improve reliability of the Ctrl+c tests for WebCmdlets (#19532) (Thanks @stevenebutler!)
  • Fix logic for Import-CliXml test (#19805)
  • Add some debugging to the transcript test for SilentlyContinue (#19770)
  • Re-enable Get-ComputerInfo pending tests (#19746)
  • Update syslog parser to handle modern formats. (#19737)
  • Pass -UserScope as required by RunUpdateHelpTests (#13400) (Thanks @yecril71pl!)
  • Change how isPreview is determined for default cmdlets tests (#19650)
  • Skip file signature tests on 2012R2 where PKI cmdlet do not work (#19643)
  • Change logic for testing missing or extra cmdlets. (#19635)
  • Fix incorrect test cases in ExecutionPolicy.Tests.ps1 (#19485) (Thanks @xtqqczze!)
  • Fixing structure typo in test setup (#17458) (Thanks @powercode!)
  • Fix test failures on Windows for time zone and remoting (#19466)
  • Harden 'All approved Cmdlets present' test (#19530)
  • Documentation and Help Content:
  • Update metadata.json and README.md for upcoming releases (#19863)(#19542)
  • Update message to use the actual parameter name (#19851)
  • Update CONTRIBUTING.md to include Code of Conduct enforcement (#19810)
  • Update working-group-definitions.md (#19809)(#19561)
  • Update working-group.md to add section about reporting working group members (#19758)
  • Correct capitalization in readme (#19666) (Thanks @Aishat452!)
  • Updated the public dashboard link (#19634)
  • Fix a typo in serialization.cs (#19598) (Thanks @eltociear!)

New in PowerShell 7.3.5 (Jun 28, 2023)

  • Bump to use .NET 7.0.305
  • Update the ThirdPartyNotice (Internal 26372)
  • Add PoolNames variable group to compliance pipeline (#19408)
  • Update cgmanifest.json
  • Update to .NET 7.0.304 (#19807)
  • Disable SBOM signing for CI and add extra files for packaging tests (#19729)
  • Increase timeout to make subsystem tests more reliable (#18380)
  • Increase the timeout when waiting for the event log (#19264)
  • Implement IDisposable in NamedPipeClient (#18341) (Thanks @xtqqczze!)
  • Always regenerate files wxs fragment (#19196)
  • Bump Microsoft.PowerShell.MarkdownRender (#19751)
  • Delete symbols on Linux as well (#19735)
  • Add prompt to fix conflict during backport (#19583)
  • Add backport function to release tools (#19568)
  • Add an explicit manual stage for changelog update (#19551)
  • Update the team member list in releaseTools.psm1 (#19544)
  • Verify that packages have license data (#19543)
  • Fix the regex used for package name check in vPack build (#19511)
  • Make the vPack PAT library more obvious (#19505)
  • Update the metadata.json to mark 7.3 releases as latest for stable channel (#19565)

New in PowerShell 7.4.0 Preview 3 (Apr 21, 2023)

  • Breaking Changes:
  • Remove code related to #requires -pssnapin (#19320)
  • Engine Updates and Fixes:
  • Change the arrow used in feedback suggestion to a more common Unicode character (#19534)
  • Support trigger registration in feedback provider (#19525)
  • Update the ICommandPredictor interface to reduce boilerplate code from predictor implementation (#19414)
  • Fix a crash in the type inference code (#19400) (Thanks @MartinGC94!)
  • Performance:
  • Speed up Resolve-Path relative path resolution (#19171) (Thanks @MartinGC94!)
  • General Cmdlet Updates and Fixes:
  • Infer external application output as strings (#19193) (Thanks @MartinGC94!)
  • Fix a race condition in Add-Type (#19471)
  • Detect insecure https-to-http redirect only if both URIs are absolute (#19468) (Thanks @CarloToso!)
  • Support Ctrl+c when connection hangs while reading data in WebCmdlets (#19330) (Thanks @stevenebutler!)
  • Enable type conversion of AutomationNull to $null for assignment (#19415)
  • Add the parameter -Environment to Start-Process (#19374)
  • Add the parameter -RelativeBasePath to Resolve-Path (#19358) (Thanks @MartinGC94!)
  • Exclude redundant parameter aliases from completion results (#19382) (Thanks @MartinGC94!)
  • Allow using a folder path in WebCmdlets' -OutFile parameter (#19007) (Thanks @CarloToso!)
  • Tests:
  • Harden the default command test (#19416)
  • Skip VT100 tests on Windows Server 2012R2 as console does not support it (#19413)
  • Improve package management acceptance tests by not going to the gallery (#19412)

New in PowerShell 7.3.4 (Apr 14, 2023)

  • Engine Updates and Fixes:
  • Add instrumentation to AmsiUtil and make the init variable readonly
  • Fix support for NanoServer due to the lack of AMSI
  • Adding missing guard for telemetry optout to avoid NullReferenceException when importing modules (#18949) (Thanks @powercode!)
  • Fix VtSubstring helper method to correctly check chars copied
  • Fix ConciseView to handle custom ParserError error records
  • Build and Packaging Improvements:
  • Bump to use .NET 7.0.5:
  • Update ThirdPartyNotices.txt
  • Update cgmanifest.json
  • Fix the template that creates nuget package
  • Update the wix file
  • Update to .NET SDK 7.0.203
  • Skip VT100 tests on Windows Server 2012R2 as console does not support it
  • Improve package management acceptance tests by not going to the gallery
  • Fix stage dependencies and typo in release build
  • Fix issues in release build and release pipeline
  • Restructure the package build to simplify signing and packaging stages
  • Test fixes for stabilizing tests
  • Add stage for symbols job in Release build
  • Use reference assemblies generated by dotnet
  • Add URL for all distributions

New in PowerShell 7.4.0 Preview 2 (Mar 15, 2023)

  • Breaking Changes:
  • Update some PowerShell APIs to throw ArgumentException instead of ArgumentNullException when the argument is an empty string (#19215) (Thanks @xtqqczze!)
  • Add the parameter -ProgressAction to the common parameters (#18887)
  • Engine Updates and Fixes:
  • Fix PlainText output to correctly remove the Reset VT sequence without number (#19283)
  • Fix ConciseView to handle custom ParserError error records (#19239)
  • Fix VtSubstring helper method to correctly check characters copied (#19240)
  • Update the FeedbackProvider interface to return structured data (#19133)
  • Make the exception error in PowerShell able to associate with the right history entry (#19095)
  • Fix for JEA session leaking functions (#19024)
  • Add WDAC events and system lockdown notification (#18893)
  • Fix support for nanoserver due to lack of AMSI (#18882)
  • Performance:
  • Use interpolated strings (#19002)(#19003)(#18977)(#18980)(#18996)(#18979)(#18997)(#18978)(#18983)(#18992)(#18993)(#18985)(#18988) (Thanks @CarloToso!)
  • General Cmdlet Updates and Fixes:
  • Fix completion for PSCustomObject variable properties (#18682) (Thanks @MartinGC94!)
  • Improve type inference for Get-Random (#18972) (Thanks @MartinGC94!)
  • Make -Encoding parameter able to take ANSI encoding in PowerShell (#19298) (Thanks @CarloToso!)
  • Telemetry improvements for tracking experimental feature opt out (#18762)
  • Support HTTP persistent connections in Web Cmdlets (#19249) (Thanks @stevenebutler!)
  • Fix using xml -Body in webcmdlets without an encoding (#19281) (Thanks @CarloToso!)
  • Add the Statement property to $MyInvocation (#19027) (Thanks @IISResetMe!)
  • Fix Start-Process -Wait with -Credential (#19096) (Thanks @jborean93!)
  • Adjust PUT method behavior to POST one for default content type in WebCmdlets (#19152) (Thanks @CarloToso!)
  • Improve verbose message in web cmdlets when content length is unknown (#19252) (Thanks @CarloToso!)
  • Preserve WebSession.MaximumRedirection from changes (#19190) (Thanks @CarloToso!)
  • Take into account ContentType from Headers in WebCmdlets (#19227) (Thanks @CarloToso!)
  • Use C# 11 UTF-8 string literals (#19243) (Thanks @turbedi!)
  • Add property assignment completion for enums (#19178) (Thanks @MartinGC94!)
  • Fix class member completion for classes with base types (#19179) (Thanks @MartinGC94!)
  • Add -Path and -LiteralPath parameters to Test-Json cmdlet (#19042) (Thanks @ArmaanMcleod!)
  • Allow to preserve the original HTTP method by adding -PreserveHttpMethodOnRedirect to Web cmdlets (#18894) (Thanks @CarloToso!)
  • Webcmdlets display an error on https to http redirect (#18595) (Thanks @CarloToso!)
  • Build the relative URI for links from the response in Invoke-WebRequest (#19092) (Thanks @CarloToso!)
  • Fix redirection for -CustomMethod POST in WebCmdlets (#19111) (Thanks @CarloToso!)
  • Dispose previous response in Webcmdlets (#19117) (Thanks @CarloToso!)
  • Improve Invoke-WebRequest xml and json errors format (#18837) (Thanks @CarloToso!)
  • Fix error formatting to remove the unneeded leading newline for concise view (#19080)
  • Add -NoHeader parameter to ConvertTo-Csv and Export-Csv cmdlets (#19108) (Thanks @ArmaanMcleod!)
  • Fix Start-Process -Credential -Wait to work on Windows (#19082)
  • Add ValidateNotNullOrEmpty to OutFile and InFile parameters of WebCmdlets (#19044) (Thanks @CarloToso!)
  • Correct spelling of "custom" in event (#19059) (Thanks @spaette!)
  • Ignore expected error for file systems not supporting alternate streams (#19065)
  • Adding missing guard for telemetry opt out to avoid NullReferenceException when importing modules (#18949) (Thanks @powercode!)
  • Fix progress calculation divide by zero in Copy-Item (#19038)
  • Add progress to Copy-Item (#18735)
  • WebCmdlets parse XML declaration to get encoding value, if present. (#18748) (Thanks @CarloToso!)
  • HttpKnownHeaderNames update headers list (#18947) (Thanks @CarloToso!)
  • Fix bug with managing redirection and KeepAuthorization in Web cmdlets (#18902) (Thanks @CarloToso!)
  • Fix Get-Error to work with strict mode (#18895)
  • Add AllowInsecureRedirect switch to Web cmdlets (#18546) (Thanks @CarloToso!)
  • Invoke-RestMethod -FollowRelLink fix links containing commas (#18829) (Thanks @CarloToso!)
  • Prioritize the default parameter set when completing positional arguments (#18755) (Thanks @MartinGC94!)
  • Add -CommandWithArgs parameter to pwsh (#18726)
  • Enable creating composite subsystem implementation in modules (#18888)
  • Fix Format-Table -RepeatHeader for property derived tables (#18870)
  • Add StatusCode to HttpResponseException (#18842) (Thanks @CarloToso!)
  • Fix type inference for all scope variables (#18758) (Thanks @MartinGC94!)
  • Add completion for Using keywords (#16514) (Thanks @MartinGC94!)
  • Code Cleanup:
  • We thank the following contributors!
  • @CarloToso, @iSazonov, @xtqqczze, @turbedi, @syntax-tm, @eltociear, @ArmaanMcleod
  • Tools:
  • Add a Mariner install script (#19294)
  • Add tool to trigger license information gathering for NuGet modules (#18827)
  • Tests:
  • Update and enable the test for the type of $input (#18968) (Thanks @MartinGC94!)
  • Increase the timeout for creating the WebListener (#19268)
  • Increase the timeout when waiting for the event log (#19264)
  • Add Windows ARM64 CI (#19040)
  • Change test so output does not include newline (#19026)
  • Allow system lock down test debug hook to work with new WLDP API (#18962)
  • Add tests for Allowinsecureredirect parameter in Web cmdlets (#18939) (Thanks @CarloToso!)
  • Enable get-help pattern tests on Unix (#18855) (Thanks @xtqqczze!)
  • Create test to check if WebCmdlets decompress brotli-encoded data (#18905) (Thanks @CarloToso!)

New in PowerShell 7.3.3 (Feb 24, 2023)

  • Bump to use .NET 7.0.3

New in PowerShell 7.3.2 (Jan 24, 2023)

  • Engine Updates and Fixes:
  • Fix SuspiciousContentChecker.Match to detect a pre-defined string when the text starts with it (#18916)
  • Fix for JEA session leaking functions (Internal 23820)
  • General Cmdlet Updates and Fixes:
  • Fix Start-Job to check the existence of working directory using the PowerShell way (#18917)
  • Fix Switch-Process error to include the command that is not found (#18650)
  • Tests:
  • Allow system lock down test debug hook to work with new WLDP API (fixes system lock down tests) (#18962)
  • Build and Packaging Improvements:
  • Bump to use .NET 7.0.2

New in PowerShell 7.4.0 Preview 1 (Dec 21, 2022)

  • 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 and DimOff 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) with Encoding.Default (#18356) (Thanks @xtqqczze!)
  • Fix Switch-Process to set termios 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()) with ArgumentNullException.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 in Stop-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 and sqlcmd 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 in NamedPipeClient (#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 to Get-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 the NoRunspaceAffinity 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 use stackalloc 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 in meta 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!)

New in PowerShell 7.3.1 (Dec 13, 2022)

  • Engine Updates and Fixes:
  • Remove TabExpansion for PSv2 from remote session configuration (Internal 23331)
  • Add sqlcmd to list to use legacy argument passing (#18645 #18646)
  • Change exec from alias to function to handle arbitrary args (#18644)
  • Fix Switch-Process to copy the current env to the new process (#18632)
  • Fix issue when completing the first command in a script with an empty array expression (#18355)
  • Fix Switch-Process to set termios appropriate for child process (#18572)
  • Fix native access violation (#18571)
  • Tests:
  • Backport CI fixed from #18508 (#18626)
  • Mark charset test as pending (#18609)

New in PowerShell 7.3.0 (Nov 9, 2022)

  • General Cmdlet Updates and Fixes:
  • Correct calling cmdlet New-PSSessionOption in script for Restart-Computer (#18374)
  • Tests:
  • Add test for framework dependent package in release pipeline (Internal 23139)

New in PowerShell 7.3.0 RC 1 (Oct 27, 2022)

  • Breaking Change:
  • Update to use ComputeCore.dll for PowerShell Direct (#18194)
  • Engine Updates and Fixes:
  • On Unix, explicitly terminate the native process during cleanup only if it's not running in background (#18215)
  • General Cmdlet Updates and Fixes:
  • Remove the ProcessorArchitecture portion from the full name as it's obsolete (#18320)
  • Tests:
  • Add missing -Tag 'CI' to describe blocks. (#18317)
  • Build and Packaging Improvements:
  • Bump to .NET 7 to 7.0.100-rc.2.22477.20 (#18328)(#18286)

New in PowerShell 7.2.7 (Oct 21, 2022)

  • Engine Updates and Fixes:
  • On Unix, explicitly terminate the native process during cleanup only if it's not running in background (#18280)
  • Stop sending telemetry about ApplicationType (#18168)
  • General Cmdlet Updates and Fixes:
  • Remove the 1-second minimum delay in Invoke-WebRequest for downloading small files, and prevent file-download-error suppression (#18170)
  • Enable searching for assemblies in GAC_Arm64 on Windows (#18169)
  • Fix error formatting to use color defined in $PSStyle.Formatting (#18287)
  • Tests:
  • Use Ubuntu 20.04 for SSH remoting test (#18289)

New in PowerShell 7.3.0 Preview 8 (Sep 21, 2022)

  • General Cmdlet Updates and Fixes:
  • Filter out compiler generated types for Add-Type -PassThru (#18095)
  • Fix error formatting to use color defined in $PSStyle.Formatting (#17987)
  • Handle PSObject argument specially in method invocation logging (#18060)
  • Revert the experimental feature PSStrictModeAssignment (#18040)
  • Make experimental feature PSAMSIMethodInvocationLogging stable (#18041)
  • Make experimental feature PSAnsiRenderingFileInfo stable (#18042)
  • Make experimental feature PSCleanBlock stable (#18043)
  • Make experimental feature PSNativeCommandArgumentPassing stable (#18044)
  • Make experimental feature PSExec stable (#18045)
  • Make experimental feature PSRemotingSSHTransportErrorHandling stable (#18046)
  • Add the ConfigurationFile option to the PowerShell help content (#18093)

New in PowerShell 7.2.6 (Aug 12, 2022)

  • Engine Updates and Fixes:
  • Fix ForEach-Object -Parallel when passing in script block variable (#16564)
  • General Cmdlet Updates and Fixes:
  • Make Out-String and Out-File keep string input unchanged (#17455)
  • Update regex used to remove ANSI escape sequences to be more specific to decoration and hyperlinks (#16811)
  • Fix legacy ErrorView types to use $host.PrivateData colors (#17705)
  • Fix Export-PSSession to not throw error when a rooted path is specified for -OutputModule (#17671)

New in PowerShell 7.3.0 Preview 7 (Aug 12, 2022)

  • Breaking Changes:
  • Move the type data definition of System.Security.AccessControl.ObjectSecurity to the Microsoft.PowerShell.Security module (#16355) (Thanks @iSazonov!)
  • Engine Updates and Fixes:
  • Enable searching for assemblies in GAC_Arm64 on Windows (#17816)
  • Fix parser exception in using statements with empty aliases (#16745) (Thanks @MartinGC94!)
  • Do not always collapse space between parameter and value for native arguments. (#17708)
  • Remove PSNativePSPathResolution experimental feature (#17670)
  • General Cmdlet Updates and Fixes:
  • Fix for deserializing imported ordered dictionary (#15545) (Thanks @davidBar-On!)
  • Make generated implicit remoting modules backwards compatible with PowerShell 5.1 (#17227) (Thanks @Tadas!)
  • Re-enable IDE0031: Use Null propagation (#17811) (Thanks @fflaten!)
  • Allow commands to still be executed even if the current working directory no longer exists (#17579)
  • Stop referencing Microsoft.PowerShell.Security when the core snapin is used (#17771)
  • Add support for HTTPS with Set-AuthenticodeSignature -TimeStampServer (#16134) (Thanks @Ryan-Hutchison-USAF!)
  • Add type accelerator ordered for OrderedDictionary (#17804) (Thanks @fflaten!)
  • Fix the definition of the PDH_COUNTER_INFO struct (#17779)
  • Adding Virtualization Based Security feature names to Get-ComputerInfo (#16415) (Thanks @mattifestation!)
  • Fix FileSystemProvider to work with volume and pipe paths (#15873)
  • Remove pre-parse for array-based JSON (#15684) (Thanks @strawgate!)
  • Improve type inference for $_ (#17716) (Thanks @MartinGC94!)
  • Prevent braces from being removed when completing variables (#17751) (Thanks @MartinGC94!)
  • Fix type inference for ICollection (#17752) (Thanks @MartinGC94!)
  • Fix Test-Json not handling non-object types at root (#17741) (Thanks @dkaszews!)
  • Change Get-ChildItem to treat trailing slash in path as indicating a directory when used with -Recurse (#17704)
  • Add find.exe to legacy argument binding behavior for Windows (#17715)
  • Add completion for index expressions for dictionaries (#17619) (Thanks @MartinGC94!)
  • Fix enum-ranges for ValidateRange in proxy commands (#17572) (Thanks @fflaten!)
  • Fix type completion for attribute tokens (#17484) (Thanks @MartinGC94!)
  • Add -noprofileloadtime switch to pwsh (#17535) (Thanks @rkeithhill!)
  • Fix legacy ErrorView types to use $host.PrivateData colors (#17705)
  • Improve dynamic parameter tab completion (#17661) (Thanks @MartinGC94!)
  • Avoid binding positional parameters when completing parameter in front of value (#17693) (Thanks @MartinGC94!)
  • Render decimal numbers in a table using current culture (#17650)

New in PowerShell 7.3.0 Preview 6 (Jul 18, 2022)

  • General Cmdlet Updates and Fixes:
  • Fix Export-PSSession to not throw error when a rooted path is specified for -OutputModule (#17671)
  • Change ConvertFrom-Json -AsHashtable to use ordered hashtable (#17405)
  • Remove potential ANSI escape sequences in strings before using in Out-GridView (#17664)
  • Add the -Milliseconds parameter to New-TimeSpan (#17621) (Thanks @NoMoreFood!)
  • Update Set-AuthenticodeSignature to use SHA256 as the default (#17560) (Thanks @jborean93!)
  • Fix tab completion regression when completing ValidateSet values (#17628) (Thanks @MartinGC94!)
  • Show optional parameters as such when displaying method definition and overloads (#13799) (Thanks @eugenesmlv!)

New in PowerShell 7.3.0 Preview 5 (Jun 23, 2022)

  • Engine Updates and Fixes:
  • Improve type inference and completions (#16963) (Thanks @MartinGC94!)
  • Make Out-String and Out-File keep string input unchanged (#17455)
  • Make AnsiRegex able to capture Hyperlink ANSI sequences (#17442)
  • Add the -ConfigurationFile command line parameter to pwsh to support local session configuration (#17447)
  • Fix native library loading for osx-arm64 (#17365) (Thanks @awakecoding!)
  • Fix formatting to act appropriately when the style of table header or list label is empty string (#17463)
  • General Cmdlet Updates and Fixes:
  • Fix various completion issues inside the param block (#17489) (Thanks @MartinGC94!)
  • Add Amended switch to Get-CimClass cmdlet (#17477) (Thanks @iSazonov!)
  • Improve completion on operators (#17486) (Thanks @MartinGC94!)
  • Improve array element completion for command arguments (#17078) (Thanks @matt9ucci!)
  • Use AST extent for PSScriptRoot path completion (#17376)
  • Add type inference support for generic methods with type parameters (#16951) (Thanks @MartinGC94!)
  • Write out OSC indicator only if the stdout is not redirected (#17419)
  • Remove the assert and use a relatively larger capacity to cover possible increase of .NET reference assemblies (#17423)
  • Increase reference assembly count to 161 (#17420)
  • Code Cleanup:
  • We thank the following contributors!
  • @Yulv-git, @eltociear
  • Tools:
  • Update script to pin to .NET 7 preview 5 version (#17448)
  • Start-PSPester: argument completer for -Path (#17334) (Thanks @powercode!)
  • Add reminder workflows (#17387)
  • Move to configuring the fabric bot via JSON (#17411)
  • Update Documentation Issue Template URL (#17410) (Thanks @michaeltlombardi!)
  • Update script to automatically take new preview pre-release builds (#17375)
  • Tests:
  • Make Assembly Load Native test work on a FX Dependent Linux Install (#17380)
  • Update Get-Error test to not depend on DNS APIs (#17471)
  • Build and Packaging Improvements
  • Documentation and Help Content:
  • Update to the latest NOTICES file (#17493) (Thanks @github-actions[bot]!)
  • Update the cgmanifest (#17478) (Thanks @github-actions[bot]!)
  • Correct spelling in Comments and tests (#17480) (Thanks @Yulv-git!)
  • Fix spelling errors introduced in changelog (#17414)
  • Update change log for v7.3.0-preview.4 release (#17412)
  • Update readme and metadata for 7.3.0-preview.4 release (#17378)

New in PowerShell 7.3.0 Preview 4 (May 23, 2022)

  • Engine Updates and Fixes:
  • Remove the use of BinaryFormatter in PSRP serialization (#17133) (Thanks @jborean93!)
  • Update telemetry collection removing unused data and adding some new data (#17304)
  • Fix the word wrapping in formatting to handle escape sequences properly (#17316)
  • Fix the error message in Hashtable-to-object conversion (#17329)
  • Add support for new WDAC API (#17247)
  • On Windows, reset cursor visibility back to previous state when rendering progress (#16782)
  • Fix the list view to not leak VT decorations (#17262)
  • Fix formatting truncation to handle strings with VT sequences (#17251)
  • Fix line breakpoints for return statements without a value (#17179)
  • Fix for partial PowerShell module search paths, that can be resolved to CWD locations (#17231) (Internal 20126)
  • Change logic in the testing helper module for determining whether PSHOME is writable (#17218)
  • Make a variable assignment in a ParenExpression to return the variable value (#17174)
  • Use new Windows signature APIs from Microsoft.Security.Extensions package (#17159)
  • Do not include node names when sending telemetry. (#16981)
  • Support forward slashes in network share (UNC path) completion (#17111) (#17117) (Thanks @sba923!)
  • Do not generate clean block in proxy function when the feature is disabled (#17112)
  • Ignore failure attempting to set console window title (#16948)
  • Update regex used to remove ANSI escape sequences to be more specific to decoration and CSI sequences (#16811)
  • Improve member auto completion (#16504) (Thanks @MartinGC94!)
  • Prioritize ValidateSet completions over Enums for parameters (#15257) (Thanks @MartinGC94!)
  • Add Custom Remote Connections Feature (#17011)
  • General Cmdlet Updates and Fixes:
  • Add check for ScriptBlock wrapped in PSObject to $using used in ForEach-Object -Parallel (#17234) (Thanks @ryneandal!)
  • Fix ForEach method to set property on a scalar object (#17213)
  • Fix Sort-Object -Stable -Unique to actually do stable sorting (#17189) (Thanks @m1k0net!)
  • Add OutputType attribute to various commands (#16962) (Thanks @MartinGC94!)
  • Make Stop-Service only request needed privileges when not setting SDDL. (#16663) (Thanks @kvprasoon!)
  • Code Cleanup:
  • Remove EventLogLogProvider and its related legacy code (#17027)
  • Fix typos in names of method (#17003) (Thanks @al-cheb!)
  • SemanticChecks: Avoid repeated type resolution of [ordered] (#17328) (Thanks IISResetMe!)
  • Redo the change that was reverted by #15853 (#17357)
  • Correct spelling of pseudo in Compiler.cs (#17285) (Thanks @eltociear!)
  • MakeNameObscurerTelemetryInitializer internal (#17214)
  • Make NameObscurerTelemetryInitializer internal (#17167)
  • Correct Typo in the resource string PathResolvedToMultiple (#17098) (Thanks @charltonstanley!)
  • Fix typo in ComRuntimeHelpers.cs (#17104) (Thanks @eltociear!)
  • Documentation and Help Content:
  • Update link to PowerShell remoting in depth video (#17166)
  • Tests:
  • Add -because to the failing test to aid in debugging (#17030)
  • Simplify Enum generator for the -bnot operator test (#17014)
  • Improve unique naming for tests (#17043)
  • Use a random string for the missing help topic to improve the chances that the help topic really won't be found. (#17042)
  • Build and Packaging Improvements:
  • Update README.md and metadata.json for v7.3.0-preview.3 release (#17029)
  • Do not pull dotnet updates from internal feed (#17007)
  • Simplify Get-WSManSupport based on current .NET Distro Support (#17356)
  • Update to the latest NOTICES file (#17372, #17332, #17311, #17275)
  • Run on every PR and let the action skip (#17366)
  • Make sure verbose message is not null (#17363)
  • Release changelogs (#17364)
  • Update build versions (#17318)
  • Add Daily Link Check GitHub Workflow (#17351)
  • Update the cgmanifest (#17361, #17344, #17324, #17302, #17268)
  • Bump NJsonSchema from 10.6.10 to 10.7.0 (#17350)
  • Disable broken macOS CI job, which is unused (#17221)
  • Have rebase workflow Post a message when it starts (#17341)
  • Update DotnetRuntimeMetadata.json for .NET 7 Preview 4 (#17336)
  • Update Ubuntu 22 to be detected as not supported WSMan (#17338)
  • Bump xunit.runner.visualstudio from 2.4.3 to 2.4.5 (#17274)
  • Make sure we execute tests on LTS package for older LTS releases (#17326)
  • Bump Microsoft.NET.Test.Sdk from 17.1.0 to 17.2.0 (#17320)
  • Add fedora to the OS's that can't run WSMan (#17325)
  • Add sles15 support to install-powershell.sh (#16984)
  • Start rotating through all images (#17315)
  • Update .NET SDK version from 7.0.100-preview.2.22153.17 to 7.0.100-preview.4.22252.9 (#17061)
  • Disable release security analysis for SSH CI (#17303)
  • Add a finalize template which causes jobs with issues to fail (#17314)
  • Add mapping for ubuntu22.04 jammy (#17317)
  • Enable more tests to be run in a container. (#17294)
  • Fix build.psm1 to find the required .NET SDK version when a higher version is installed (#17299)
  • Improve how Linux container CI builds are identified (#17295)
  • Only inject NuGet security analysis if we are using secure nuget.config (#17293)
  • Reduce unneeded verbose message from build.psm1 (#17291)
  • Switch to using GitHub action to verify markdown links for PRs (#17281)
  • Put Secure supply chain analysis at correct place (#17273)
  • Fix build id variable name when selecting CI container (#17279)
  • Add rotation between the two mariner images (#17277)
  • Update to use mcr.microsoft.com (#17272)
  • Update engine working group members (#17271)
  • Bump PSReadLine from 2.2.2 to 2.2.5 in /src/Modules (#17252)
  • Update timeout for daily (#17263)
  • Bump NJsonSchema from 10.6.9 to 10.6.10 (#16902)
  • Update the cgmanifest (#17260)
  • Fix Generate checksum file for packages build failure - v7.1.7 (#17219) (Internal 20274)
  • Move cgmanifest generation to daily (#17258)
  • Bump Microsoft.CodeAnalysis.NetAnalyzers (#17245)
  • Update to the latest notice file (#17238)
  • Add container to Linux CI (#17233)
  • Mark Microsoft.Management.Infrastructure.Runtime.Win as a developer dependency to hide in notice file (#17230)
  • Fixing dotnet SDK version parsing in build.psm1 (#17198) (Thanks @powercode!)
  • Fixed package names verification to support multi-digit versions (#17220)
  • Bump Microsoft.CodeAnalysis.CSharp from 4.2.0-1.final to 4.2.0-4.final (#17210)
  • Add backport action (#17212)
  • Updated change logs for v7.0.9 / v7.0.10 / v7.1.6 / v7.1.7 / v7.2.2 / v7.2.3 (#17207)
  • Updated metadata.json and README.md for v7.2.3 and v7.0.10 (#17158)
  • Update package fallback list for ubuntu (from those updated for ubuntu 22.04) (deb) (#17180)
  • Update wix to include security extensions package (#17171)
  • Update rebase.yml (#17170)
  • Adds sha256 digests to RPM packages (#16896) (Thanks @ngharo!)
  • Make mariner packages Framework dependent (#17151)
  • Update to the latest notice file (#17169)
  • Update to the latest notice file (#17146)
  • Replace . in notices container name (#17154)
  • Allow multiple installations of dotnet. (#17141)
  • Bump Microsoft.CodeAnalysis.NetAnalyzers (#17105)
  • Update to the latest notice file (#16437)
  • Skip failing scriptblock tests (#17093)
  • Update dotnet-install script download link (#17086)
  • Fix the version of the Microsoft.CodeAnalysis.NetAnalyzers package (#17075)
  • Update dotnetmetadata.json to accept .NET 7 preview 3 builds (#17063)
  • Re-enable PowerShellGet tests targeting PowerShell gallery (#17062)
  • Add mariner 1.0 amd64 package (#17057)
  • Create checksum file for global tools (#17056)
  • Bump Microsoft.CodeAnalysis.NetAnalyzers (#17065)
  • Use new cask format (#17064)

New in PowerShell 7.2.4 (May 18, 2022)

  • Bump .NET SDK to 6.0.203

New in PowerShell 7.2.3 (Apr 27, 2022)

  • Engine Updates and Fixes:
  • Fix for partial PowerShell module search paths, that can be resolved to CWD locations (Internal 20126)
  • Do not include node names when sending telemetry. (#16981) to v7.2.3 (Internal 20188)
  • Tests:
  • Re-enable PowerShellGet tests targeting PowerShell gallery (#17062)
  • Skip failing scriptblock tests (#17093)
  • Build and Packaging Improvements:
  • Bump .NET SDK to 6.0.202

New in PowerShell 7.3.0 Preview 3 (Mar 22, 2022)

  • Engine Updates and Fixes:
  • Fix the parsing code for .NET method generic arguments
  • Allow the PSGetMemberBinder to get value of ByRef property
  • Allow a collection that contains Automation.Null elements to be piped to pipeline
  • General Cmdlet Updates and Fixes:
  • Add the module CompatPowerShellGet to the allow-list of telemetry modules
  • Fix Enter-PSHostProcess and Get-PSHostProcessInfo cmdlets by handling processes that have exited
  • Improve Hashtable completion in multiple scenarios
  • Code Cleanup:
  • Fix a typo in CommandHelpProvider.cs
  • Tests:
  • Update a few tests to make them more stable in CI
  • Roll back Windows images used in testing to Windows Server 2019

New in PowerShell 7.2.2 (Mar 17, 2022)

  • Bump .NET SDK to 6.0.201

New in PowerShell 7.3.0 Preview 2 (Feb 25, 2022)

  • Engine Updates and Fixes:
  • Fix the clean block for generated proxy function (#16827)
  • Add support to allow invoking method with generic type arguments (#12412 and #16822) (Thanks @vexx32!)
  • Report error when PowerShell built-in modules are missing (#16628)
  • General Cmdlet Updates and Fixes:
  • Prevent command completion if the word to complete is a single dash (#16781) (Thanks @ayousuf23!)
  • Use FindFirstFileW instead of FindFirstFileExW to correctly handle Unicode file names on FAT32 (#16840) (Thanks @iSazonov!)
  • Add completion for loop labels after Break/Continue (#16438) (Thanks @MartinGC94!)
  • Support OpenSSH options for PSRP over SSH commands (#12802) (Thanks @BrannenGH!)
  • Adds a .ResolvedTarget Property to File-System Items to Reflect a Symlink's Target as FileSystemInfo (#16490) (Thanks @hammy3502!)
  • Use NotifyEndApplication to re-enable VT mode (#16612)
  • Add new parameter to Start-Sleep: [-Duration] <timespan> (#16185) (Thanks @IISResetMe!)
  • Add lock and null check to remoting internals (#16542) (#16683) (Thanks @SergeyZalyadeev!)
  • Make Measure-Object ignore missing properties unless running in strict mode (#16589) (Thanks @KiwiThePoodle!)
  • Add -StrictMode to Invoke-Command to allow specifying strict mode when invoking command locally (#16545) (Thanks @Thomas-Yu!)
  • Fix $PSNativeCommandArgPassing = Windows to handle empty args correctly (#16639)
  • Reduce the amount of startup banner text (#16516) (Thanks @rkeithhill!)
  • Add exec cmdlet for bash compatibility (#16462)
  • Add AMSI method invocation logging as experimental feature (#16496)
  • Fix web cmdlets so that an empty Get does not include a content-length header (#16587)
  • Update HelpInfoUri for 7.3 release (#16646)
  • Fix parsing SemanticVersion build label from version string (#16608)
  • Fix ForEach-Object -Parallel when passing in script block variable (#16564)
  • Tools:
  • Fix automation to update experimental JSON files in GitHub action (#16837)
  • Tests:
  • Update markdownlint to the latest version (#16825)
  • Bump the package path-parse from 1.0.6 to 1.0.7 (#16820)
  • Remove assert that is incorrect and affecting our tests (#16588)
  • Documentation and Help Content:
  • Add newly joined members to their respective Working Groups (#16849)
  • Update Engine Working Group members (#16780)
  • Replace the broken link about pull request (#16771)
  • Update change log to remove a broken URL (#16735)
  • Updated README.md and metadata.json for v7.3.0-preview.1 release (#16627)
  • Updating changelog for 7.2.1 (#16616)
  • Updated README.md and metadata.json for 7.2.1 release (#16586)

New in PowerShell 7.3.0 Preview 1 (Dec 17, 2021)

  • Breaking Changes:
  • Add clean block to script block as a peer to begin, process, and end to allow easy resource cleanup
  • Change default for $PSStyle.OutputRendering to Ansi
  • Engine Updates and Fixes:
  • Remove duplicate remote server mediator code
  • Fix PSVersion parameter version checks and error messages for PowerShell 7 remoting
  • Use the same temporary home directory when HOME env variable is not set
  • Fix parser to generate error when array has more than 32 dimensions
  • Performance:
  • Avoid validation for built-in file extension and color VT sequences
  • General Cmdlet Updates and Fixes:
  • Update README.md and metadata.json for next preview release
  • Use PlainText when writing to a host that doesn't support VT
  • Remove support for AppExeCLinks to retrieve target
  • Move GetOuputString() and GetFormatStyleString() to PSHostUserInterface as public API
  • Fix ConvertTo-SecureString with key regression due to .NET breaking change
  • Fix regression in Move-Item to only fallback to copy and delete in specific cases
  • Set $? correctly for command expression with redirections
  • Use CurrentCulture when handling conversions to DateTime in Add-History
  • Fix link header parsing to handle unquoted rel types
  • Fix a casting error when using $PSNativeCommandUsesErrorActionPreference
  • Format-Wide: Fix NullReferenceException
  • Make the native command error handling optionally honor ErrorActionPreference
  • Remove declaration of experimental features in Utility module manifest as they are stable
  • Fix race condition between DisconnectAsync and Dispose
  • Fix the Max_PATH condition check to handle long path correctly
  • Update HelpInfoUri for 7.2 release
  • Fix tab completion within the script block specified for the ValidateScriptAttribute.
  • Update README.md to specify gathered telemetry
  • Fix typo for "privacy" in MSI installer
  • Remove unneeded call to File.ResolveLinkTarget from IsWindowsApplication
  • Add -HttpVersion parameter to web cmdlets
  • Add support to web cmdlets for open-ended input tags
  • Add more tests to Tee-Object -Encoding
  • Don't throw exception when trying to resolve a possible link path
  • Fix ConvertTo-Json -Depth to allow 100 at maximum
  • Fix for SSH remoting when banner is enabled on SSHD endpoint
  • Disallow all COM for AppLocker system lock down
  • Configure ApplicationInsights to not send cloud role name
  • Disallow Add-Type in NoLanguage mode on a locked down machine
  • Specify the executable path as TargetObect for non-zero exit code ErrorRecord
  • Don't allow Move-Item with FileSystemProvider to move a directory into itself
  • Make property names for the color VT sequences consistent with documentations
  • Fix PipelineVariable to set variable in the right scope
  • Invoke-Command: improve handling of variables with $using: expression
  • Change Target from a CodeProperty to be an AliasProperty that points to FileSystemInfo.LinkTarget
  • Code Cleanup:
  • Tools:
  • Fix typo in build.psm1
  • Add .stylecop to filetypexml and format it
  • Enable sending Teams notification when workflow fails
  • Use Convert-Path for unknown drive in Build.psm1
  • Tests:
  • Add benchmark to test compiler performance
  • Enable two previously disabled Get-Process tests
  • Set clean state before testing UseMU in the MSI
  • Fix global tool and SDK tests in release pipeline
  • Remove the outdated test
  • Removed old not-used-anymore docker-based tests for PS release packages
  • Build and Packaging Improvements:
  • Documentation and Help Content:
  • Update Windows PowerShell issues link
  • Remove Joey from Committee and WG membership
  • Update more docs for net6.0 TFM
  • Change snippet tag to code tag in XML comments
  • Update build documentation to reflect .NET 6
  • Update README.md about the change logs
  • Update change log for 7.2.0
  • Update metadata.json and README.md for 7.2.0 release
  • Update README.md and metadata.json files for v7.2.0-rc.1 release
  • Update the change logs for v7.0.8 and v7.1.5 releases

New in PowerShell 7.2.1 (Dec 15, 2021)

  • General Cmdlet Updates and Fixes:
  • Remove declaration of experimental features in Utility module manifest as they are stable (#16460)
  • Bring back pwsh.exe for framework dependent packages to support Start-Job (#16535)
  • Change default for $PSStyle.OutputRendering to Ansi (Internal 18394)
  • Update HelpInfoUri for 7.2 release (#16456)
  • Fix typo for "privacy" in MSI installer (#16407)

New in PowerShell 7.2.0 (Nov 8, 2021)

  • General Cmdlet Updates and Fixes:
  • Handle exception when trying to resolve a possible link path (#16310)
  • Tests:
  • Fix global tool and SDK tests in release pipeline (#16342)
  • Build and Packaging Improvements

New in PowerShell 7.2.0 RC 1 (Oct 22, 2021)

  • General Cmdlet Updates and Fixes:
  • Disallow COM calls for AppLocker system lockdown (#16268)
  • Configure Microsoft.ApplicationInsights to not send cloud role name (#16246)
  • Disallow Add-Type in NoLanguage mode on a locked down machine (#16245)
  • Make property names for color VT100 sequences consistent with documentation (#16212)
  • Make moving a directory into itself with Move-Item an error (#16198)
  • Change FileSystemInfo.Target from a CodeProperty to an AliasProperty that points to FileSystemInfo.LinkTarget (#16165)
  • Tests:
  • Removed deprecated docker-based tests for PowerShell release packages (#16224)
  • Build and Packaging Improvements:
  • Bump .NET SDK to 6.0.100-rc.2:
  • Update .NET 6 to version 6.0.100-rc.2.21505.57 (#16249)
  • Fix RPM packaging (Internal 17704)
  • Update ThirdPartyNotices.txt (#16283)
  • Update pipeline yaml file to use ubuntu-latest image (#16279)
  • Add script to generate cgmanifest.json (#16278)
  • Update version of Microsoft.PowerShell.Native and Microsoft.PowerShell.MarkdownRender packages (#16277)
  • Add cgmanifest.json for generating correct third party notice file (#16266)
  • Only upload stable buildinfo for stable releases (#16251)
  • Don't upload .dep or .tar.gz for RPM because there are none (#16230)
  • Ensure RPM license is recognized (#16189)
  • Add condition to only generate release files in local dev build only (#16259)
  • Ensure psoptions.json and manifest.spdx.json files always exist in packages (#16258)
  • Fix CI script and split out ARM runs (#16252)
  • Update vPack task version to 12 (#16250)
  • Sign third party executables (#16229)
  • Add Software Bill of Materials to the main packages (#16202)
  • Upgrade set-value package for markdown test (#16196)
  • Fix Microsoft update spelling issue (#16178)
  • Move vPack build to 1ES Pool (#16169)

New in PowerShell 7.1.5 (Oct 14, 2021)

  • Telemetry Changes:
  • Configure ApplicationInsights to not send cloud role name (Internal 17100)
  • Engine Updates and Fixes:
  • Handle error from unauthorized access when removing AppLocker test files (#15881)
  • Test more thoroughly whether a command is Out-Default for transcription scenarios (#15653)
  • Handle error when the telemetry mutex cannot be created (#15574) (Thanks @gukoff!)
  • Disallow Add-Type in NoLanguage mode on a locked down machine (Internal 17522)
  • Tools:
  • Add .stylecop to filetypexml and format it (#16025)
  • Build and Packaging Improvements:
  • Bump .NET SDK to 5.0.402
  • Documentation and Help Content:
  • Fix example nuget.config (#14349)

New in PowerShell 7.2.0 Preview 10 (Sep 29, 2021)

  • Engine Updates and Fixes:
  • Remove duplicate remote server mediator code (#16027)
  • General Cmdlet Updates and Fixes:
  • Use PlainText when writing to a host that doesn't support VT (#16092)
  • Remove support for AppExecLinks to retrieve target (#16044)
  • Move GetOuputString() and GetFormatStyleString() to PSHostUserInterface as public API (#16075)
  • Add isOutputRedirected parameter to GetFormatStyleString() method (#14397)
  • Fix ConvertTo-SecureString with key regression due to .NET breaking change (#16068)
  • Fix regression in Move-Item to only fallback to CopyAndDelete in specific cases (#16029)
  • Set $? correctly for command expression with redirection (#16046)
  • Use CurrentCulture when handling conversions to DateTime in Add-History (#16005) (Thanks @vexx32!)
  • Fix NullReferenceException in Format-Wide (#15990) (Thanks @DarylGraves!)
  • Code Cleanup:
  • Tools:
  • Fix typo in build.psm1 (#16038) (Thanks @eltociear!)
  • Add .stylecop to filetypexml and format it (#16025)
  • Enable sending Teams notification when workflow fails (#15982)
  • Tests:
  • Enable two previously disabled Get-Process tests (#15845) (Thanks @iSazonov!)
  • Build and Packaging Improvements
  • Details

New in PowerShell 7.2.0 Preview 9 (Aug 24, 2021)

  • Breaking Changes:
  • Change the default value of $PSStyle.OutputRendering to OutputRendering.Host and remove OutputRendering.Automatic (#15882)
  • Fix CA1052 for public API to make classes static when they only have static methods (#15775) (Thanks @xtqqczze!)
  • Update pwsh.exe -File to only accept .ps1 script files on Windows (#15859)
  • Engine Updates and Fixes:
  • Update .NET adapter to handle interface static members properly (#15908)
  • Catch and handle unauthorized access exception when removing AppLocker test files (#15881)
  • General Cmdlet Updates and Fixes:
  • Add -PassThru parameter to Set-Clipboard (#13713) (Thanks @ThomasNieto!)
  • Add -Encoding parameter for Tee-Object (#12135) (Thanks @Peter-Schneider!)
  • Update ConvertTo-Csv and Export-Csv to handle IDictionary objects (#11029) (Thanks @vexx32!)
  • Update the parameters -Exception and -ErrorRecord for Write-Error to be position 0 (#13813) (Thanks @ThomasNieto!)
  • Don't use ArgumentList when creating COM object with New-Object as it's not applicable to the COM parameter set (#15915)
  • Fix $PSStyle list output to correctly show TableHeader (#15928)
  • Remove the PSImplicitRemotingBatching experimental feature (#15863)
  • Fix issue with Get-Process -Module failing to stop when it's piped to Select-Object (#15682) (Thanks @ArmaanMcleod!)
  • Make the experimental features PSUnixFileStat, PSCultureInvariantReplaceOperator, PSNotApplyErrorActionToStderr, PSAnsiRendering, PSAnsiProgressFeatureName stable (#15864)
  • Enhance Remove-Item to work with OneDrive (#15571) (Thanks @iSazonov!)
  • Make global tool entrypoint class static (#15880)
  • Update ServerRemoteHost version to be same as PSVersion (#15809)
  • Make the initialization of HttpKnownHeaderNames thread safe (#15519) (Thanks @iSazonov!)
  • ConvertTo-Csv: Quote fields with quotes and newlines when using -UseQuotes AsNeeded (#15765) (Thanks @lselden!)
  • Forwarding progress stream changes from Foreach-Object -Parallel runspaces (#14271) (Thanks @powercode!)
  • Add validation to $PSStyle to reject printable text when setting a property that only expects ANSI escape sequence (#15825)
  • Code Cleanup:
  • We thank the following contributors: @xtqqczze
  • Tools:
  • Enable /rebase to automatically rebase a PR (#15808)
  • Update .editorconfig to not replace tabs with spaces in .tsv files (#15815) (Thanks @SethFalco!)
  • Update PowerShell team members in the change log generation script (#15817)
  • Tests:
  • Add more tests to validate the current command error handling behaviors (#15919)
  • Make Measure-Object property test independent of the file system (#15879)
  • Add more information when a syslog parsing error occurs (#15857)
  • Harden logic when looking for syslog entries to be sure that we select based on the process id (#15841)
  • Build and Packaging Improvements:
  • We thank the following contributors: @xtqqczze
  • Documentation and Help Content:
  • Update README and metadata files for release v7.2.0-preview.8 (#15819)
  • Update change logs for 7.0.7 and 7.1.4 (#15921)
  • Fix spelling in XML docs (#15939) (Thanks @slowy07!)
  • Update PowerShell Committee members (#15837)

New in PowerShell 7.1.4 (Aug 13, 2021)

  • Bump .NET SDK to version 5.0.400

New in PowerShell 7.2.0 Preview 8 (Jul 23, 2021)

  • Engine Updates and Fixes:
  • Add a Windows mode to $PSNativeCommandArgumentPassing that allows some commands to use legacy argument passing (#15408)
  • Use nameof to get parameter names when creating ArgumentNullException (#15604) (Thanks @gukoff!)
  • Test if a command is 'Out-Default' more thoroughly for transcribing scenarios (#15653)
  • Add Microsoft.PowerShell.Crescendo to telemetry allow list (#15372)
  • General Cmdlet Updates and Fixes:
  • Use $PSStyle.Formatting.FormatAccent for Format-List and $PSStyle.Formatting.TableHeader for Format-Table output (#14406)
  • Highlight using error color the exception Message and underline in PositionMessage for Get-Error (#15786)
  • Implement a completion for View parameter of format cmdlets (#14513) (Thanks @iSazonov!)
  • Add support to colorize FileInfo file names (#14403)
  • Don't serialize to JSON ETS properties for DateTime and string types (#15665)
  • Fix HyperVSocketEndPoint.ServiceId setter (#15704) (Thanks @xtqqczze!)
  • Add DetailedView to $ErrorView (#15609)
  • Code Cleanup:
  • We thank the following contributors!
  • @iSazonov, @xtqqczze
  • Tools:
  • Add SkipRoslynAnalyzers parameter to Start-PSBuild (#15640) (Thanks @xtqqczze!)
  • Create issue template for issues updating PowerShell through Windows update. (#15700)
  • Add DocumentationAnalyzers to build (#14336) (Thanks @xtqqczze!)
  • Convert GitHub issue templates to modern forms (#15645)
  • Tests:
  • Add more tests for ConvertFrom-Json (#15706) (Thanks @strawgate!)
  • Update glob-parent and hosted-git-info test dependencies (#15643)
  • Build and Packaging Improvements:
  • Update .NET to version v6.0.0-preview.6
  • Documentation and Help Content:
  • Fix broken RFC links (#15807)
  • Add to bug report template getting details from Get-Error (#15737)
  • Update issue templates to link to new docs (#15711)
  • Add @jborean93 to Remoting Working Group (#15683)

New in PowerShell 7.2.0 Preview 7 (Jun 17, 2021)

  • Breaking Changes:
  • Remove PSDesiredStateConfiguration v2.0.5 module and published it to the PowerShell Gallery (#15536)
  • Engine Updates and Fixes:
  • Fix splatting being treated as positional parameter in completions (#14623) (Thanks @MartinGC94!)
  • Prevent PowerShell from crashing when a telemetry mutex can't be created (#15574) (Thanks @gukoff!)
  • Ignore all exceptions when disposing an instance of a subsystem implementation (#15511)
  • Wait for SSH exit when closing remote connection (#14635) (Thanks @dinhngtu!)
  • Performance:
  • Retrieve ProductVersion using informational version attribute in AmsiUtils.Init() (#15527) (Thanks @Fs00!)
  • General Cmdlet Updates and Fixes:
  • Fix retrieving dynamic parameters from provider even if globbed path returns no results (#15525)
  • Revert "Enhance Remove-Item to work with OneDrive (#15260)" due to long path issue (#15546)

New in PowerShell 7.2.0 Preview 6 (May 28, 2021)

  • Tools:
  • Add winget release script (#15050)
  • Tests:
  • Enable cross-runtime benchmarking to compare different .NET runtimes (#15387) (Thanks @adamsitnik!)
  • Add the performance benchmark project for PowerShell performance testing (#15242)
  • Build and Packaging Improvements:
  • Update .NET to version v6.0.0-preview.4

New in PowerShell 7.2.0 Preview 5 (Apr 15, 2021)

  • Breaking Changes:
  • Enforce AppLocker Deny configuration before Execution Policy Bypass configuration (#15035)
  • Disallow mixed dash and slash in command line parameter prefix (#15142)
  • Experimental Features:
  • PSNativeCommandArgumentPassing: Use ArgumentList for native executable invocation (breaking change) (#14692)
  • Engine Updates and Fixes:
  • Add IArgumentCompleterFactory for parameterized ArgumentCompleters (#12605)
  • General Cmdlet Updates and Fixes:
  • Fix SSH remoting connection never finishing with misconfigured endpoint (#15175)
  • Respect TERM and NO_COLOR environment variables for $PSStyle rendering (#14969)
  • Use ProgressView.Classic when Virtual Terminal is not supported (#15048)
  • Fix Get-Counter issue with -Computer parameter (#15166)
  • Fix redundant iteration while splitting lines (#14851)
  • Enhance Remove-Item -Recurse to work with OneDrive (#14902)
  • Change minimum depth to 0 for ConvertTo-Json (#14830)
  • Allow Set-Clipboard to accept empty string (#14579)
  • Turn on and off DECCKM to modify keyboard mode for Unix native commands to work correctly (#14943)
  • Fall back to CopyAndDelete() when MoveTo() fails due to an IOException (#15077)
  • Code Cleanup:
  • Update .NET to 6.0.0-preview.3 (#15221)
  • Add space before comma to hosting test to fix error reported by SA1001 (#15224)
  • Add SecureStringHelper.FromPlainTextString helper method for efficient secure string creation (#14124)
  • Use static lambda keyword (#15154)
  • Remove unnecessary Array -> List -> Array conversion in ProcessBaseCommand.AllProcesses (#15052)
  • Standardize grammar comments in Parser.cs (#15114)
  • Enable SA1001: Commas should be spaced correctly (#14171)
  • Refactor MultipleServiceCommandBase.AllServices (#15053)
  • Tools:
  • Use Unix line endings for shell scripts (#15180)
  • Tests:
  • Add the missing tag in Host Utilities tests (#14983)
  • Update copy-props version in package.json (#15124)
  • Build and Packaging Improvements:
  • Fix yarn-lock for copy-props (#15225)
  • Make package validation regex accept universal Linux packages (#15226)
  • Bump NJsonSchema from 10.4.0 to 10.4.1 (#15190)
  • Make MSI and EXE signing always copy to fix daily build (#15191)
  • Sign internals of EXE package so that it works correctly when signed (#15132)
  • Bump Microsoft.NET.Test.Sdk from 16.9.1 to 16.9.4 (#15141)
  • Update daily release tag format to work with new Microsoft Update work (#15164)
  • Feature: Add Ubuntu 20.04 Support to install-powershell.sh (#15095)
  • Treat rebuild branches like release branches (#15099)
  • Update WiX to 3.11.2 (#15097)
  • Bump NJsonSchema from 10.3.11 to 10.4.0 (#15092)
  • Allow patching of preview releases (#15074)
  • Bump Newtonsoft.Json from 12.0.3 to 13.0.1 (#15084, #15085)
  • Update the minSize build package filter to be explicit (#15055)
  • Bump NJsonSchema from 10.3.10 to 10.3.11 (#14965)
  • Documentation and Help Content
  • Merge 7.2.0-preview.4 changes to master (#15056)
  • Update README and metadata.json (#15046)
  • Fix broken links for dotnet CLI (#14937)

New in PowerShell 7.2.0 Preview 4 (Mar 17, 2021)

  • Breaking Changes:
  • Fix Get-Date -UFormat %G and %g behavior (#14555) (Thanks @brianary!)
  • Engine Updates and Fixes:
  • Update engine script signature validation to match Get-AuthenticodeSignature logic (#14849)
  • Avoid array allocations from GetDirectories and GetFiles (#14327) (Thanks @xtqqczze!)
  • General Cmdlet Updates and Fixes:
  • Add UseOSCIndicator setting to enable progress indicator in terminal (#14927)
  • Re-enable VT mode on Windows after running command in ConsoleHost (#14413)
  • Fix Move-Item for FileSystemProvider to use copy-delete instead of move for DFS paths (#14913)
  • Fix PromptForCredential() to add targetName as domain (#14504)
  • Update Concise ErrorView to not show line information for errors from script module functions (#14912)
  • Remove the 32,767 character limit on the environment block for Start-Process (#14111) (Thanks @hbuckle!)
  • Don't write possible secrets to verbose stream for web cmdlets (#14788)
  • Tools:
  • Update dependabot configuration to V2 format (#14882)
  • Add tooling issue slots in PR template (#14697)
  • Tests:
  • Move misplaced test file to tests directory (#14908) (Thanks @MarianoAlipi!)
  • Refactor MSI CI (#14753)
  • Build and Packaging Improvements:
  • Update .NET to version 6.0.100-preview.2.21155.3
  • Documentation and Help Content:
  • Update README.md and metadata.json for upcoming releases (#14755)
  • Merge 7.1.3 and 7.0.6 Change log to master (#15009)
  • Update README and metadata.json for releases (#14997)
  • Update ChangeLog for v7.1.2 release (#14783)
  • Update ChangeLog for v7.0.5 release (#14782) (Internal 14479)

New in PowerShell 7.1.2 (Mar 2, 2021)

  • Bump .NET SDK to version 5.0.103:
  • Fix third party signing for files in sub-folders (#14751)
  • Bump .NET SDK to version 5.0.103 (Internal 14459)
  • Publish the global tool package for stable release

New in PowerShell 7.2.0 Preview 3 (Feb 12, 2021)

  • Breaking Changes:
  • Fix Get-Date -UFormat %u behavior to comply with ISO 8601 (#14549) (Thanks @brianary!)
  • Engine Updates and Fixes:
  • Together with PSDesiredStateConfiguration v3 module allows Get-DscResource, Invoke-DscResource and DSC configuration compilation on all platforms, supported by PowerShell (using class-based DSC resources).
  • Performance:
  • Avoid array allocations from Directory.GetDirectories and Directory.GetFiles. (#14326) (Thanks @xtqqczze!)
  • Avoid string.ToLowerInvariant() from GetEnvironmentVariableAsBool() to avoid loading libicu at startup (#14323) (Thanks @iSazonov!)
  • Get PowerShell version in PSVersionInfo using assembly attribute instead of FileVersionInfo (#14332) (Thanks @Fs00!)
  • General Cmdlet Updates and Fixes:
  • Suppress Write-Progress in ConsoleHost if output is redirected and fix tests (#14716)
  • Experimental feature PSAnsiProgress: Add minimal progress bar using ANSI rendering (#14414)
  • Fix web cmdlets to properly construct URI from body when using -NoProxy (#14673)
  • Update the ICommandPredictor to provide more feedback and also make feedback easier to be correlated (#14649)
  • Reset color after writing Verbose, Debug, and Warning messages (#14698)
  • Fix using variable for nested ForEach-Object -Parallel calls (#14548)
  • When formatting, if collection is modified, don't fail the entire pipeline (#14438)
  • Improve completion of parameters for attributes (#14525) (Thanks @MartinGC94!)
  • Write proper error messages for Get-Command ' ' (#13564) (Thanks @jakekerr!)
  • Fix typo in the resource string ProxyURINotSupplied (#14526) (Thanks @romero126!)
  • Add support to $PSStyle for strikethrough and hyperlinks (#14461)
  • Fix $PSStyle blink codes (#14447) (Thanks @iSazonov!)
  • Code Cleanup:
  • We thank the following contributors!
  • @xtqqczze, @powercode
  • Tools:
  • Update script to use .NET 6 build resources (#14705)
  • Fix the daily GitHub action (#14711) (Thanks @imba-tjd!)
  • GitHub Actions: fix deprecated ::set-env (#14629) (Thanks @imba-tjd!)
  • Update markdown test tools (#14325) (Thanks @RDIL!)
  • Upgrade StyleCopAnalyzers to v1.2.0-beta.312 (#14354) (Thanks @xtqqczze!)
  • Tests:
  • Remove packaging from daily Windows build (#14749)
  • Update link to the Manning book (#14750)
  • A separate Windows packaging CI (#14670)
  • Update ini component version in test package.json (#14454)
  • Disable libmi dependent tests for macOS. (#14446)
  • Build and Packaging Improvements:
  • Documentation and Help Content:
  • Update distribution support request template to point to .NET 5.0 support document (#14578)
  • Remove security GitHub issue template (#14453)
  • Add intent for using the Discussions feature in repo (#14399)
  • Fix Universal Dashboard to refer to PowerShell Universal (#14437)
  • Update document link because of HTTP 301 redirect (#14431) (Thanks @xtqqczze!)

New in PowerShell 7.1.1 (Jan 15, 2021)

  • General Cmdlet Updates and Fixes:
  • Avoid an exception if file system does not support reparse points (#13634) (Thanks @iSazonov!)
  • Make AppLocker Enforce mode take precedence over UMCI Audit mode (#14353)
  • Code Cleanup:
  • Fix syntax error in Windows packaging script (#14377)

New in PowerShell 7.2.0 Preview 2 (Dec 15, 2020)

  • Breaking Changes:
  • Improve detection of mutable value types (#12495) (Thanks @vexx32!)
  • Ensure -PipelineVariable is set for all output from script cmdlets (#12766) (Thanks @vexx32!)
  • Experimental Features:
  • PSAnsiRendering: Enable ANSI formatting via $PSStyle and support suppressing ANSI output (#13758)
  • Performance:
  • Optimize IEnumerable variant of replace operator (#14221) (Thanks @iSazonov!)
  • Refactor multiply operation for better performance in two Microsoft.PowerShell.Commands.Utility methods (#14148) (Thanks @xtqqczze!)
  • Use Environment.TickCount64 instead of Datetime.Now as the random seed for AppLocker test file content (#14283) (Thanks @iSazonov!)
  • Avoid unnecessary array allocations when searching in GAC (#14291) (Thanks @xtqqczze!)
  • Use OrdinalIgnoreCase in CommandLineParser (#14303) (Thanks @iSazonov!)
  • Use StringComparison.Ordinal instead of StringComparison.CurrentCulture (#14298) (Thanks @iSazonov!)
  • Avoid creating instances of the generated delegate helper class in -replace implementation (#14128)
  • General Cmdlet Updates and Fixes:
  • Write better error message if config file is broken (#13496) (Thanks @iSazonov!)
  • Make AppLocker Enforce mode take precedence over UMCI Audit mode (#14353)
  • Add -SkipLimitCheck switch to Import-PowerShellDataFile (#13672)
  • Restrict New-Object in NoLanguage mode under lock down (#14140) (Thanks @krishnayalavarthi!)
  • The -Stream parameter now works with directories (#13941) (Thanks @kyanha!)
  • Avoid an exception if file system does not support reparse points (#13634) (Thanks @iSazonov!)
  • Enable CA1012: Abstract types should not have public constructors (#13940) (Thanks @xtqqczze!)
  • Enable SA1212: Property accessors should follow order (#14051) (Thanks @xtqqczze!)

New in PowerShell 7.2.0 Preview 1 (Nov 18, 2020)

  • Engine Updates and Fixes:
  • Change the default fallback encoding for GetEncoding in Start-Transcript to be UTF8 without a BOM (#13732) (Thanks @Gimly!)
  • General Cmdlet Updates and Fixes:
  • Update pwsh -? output to match docs (#13748)
  • Fix NullReferenceException in Test-Json (#12942) (Thanks @iSazonov!)
  • Make Dispose in TranscriptionOption idempotent (#13839) (Thanks @krishnayalavarthi!)
  • Add additional Microsoft PowerShell modules to the tracked modules list (#12183)
  • Relax further SSL verification checks for WSMan on non-Windows hosts with verification available (#13786) (Thanks @jborean93!)
  • Add the OutputTypeAttribute to Get-ExperimentalFeature (#13738) (Thanks @ThomasNieto!)
  • Fix blocking wait when starting file associated with a Windows application (#13750)
  • Emit warning if ConvertTo-Json exceeds -Depth value (#13692)

New in PowerShell 7.1.0 (Nov 12, 2020)

  • Engine Updates and Fixes:
  • Fix a logic bug in MapSecurityZone (#13921) (Thanks @iSazonov!)
  • General Cmdlet Updates and Fixes:
  • Update pwsh -? output to match docs (#13748)
  • Tests:
  • markdownlint security updates (#13730)
  • Build and Packaging Improvements:
  • Bump .NET to version 5.0.100-rtm.20526.5 (#13920)

New in PowerShell 7.1.0 RC 1 (Sep 30, 2020)

  • Engine Updates and Fixes:
  • Make fixes to ComInterop code as suggested by .NET team (#13533)
  • General Cmdlet Updates and Fixes:
  • Fix case where exception message contains just "`n" on Windows (#13684)
  • Recognize CONOUT$ and CONIN$ as reserved device names (#13508) (Thanks @davidreis97!)
  • Fix ConciseView for interactive advanced function when writing error (#13623)

New in PowerShell 7.0.3 (Jul 16, 2020)

  • Tests:
  • Remove dependency on DNS for Test-Connection tests on macOS (#12943)
  • Build and Packaging Improvements:
  • Update .NET Core to 3.1.6 (Internal 12005)

New in PowerShell 7.1.0 Preview 4 (Jun 26, 2020)

  • Breaking Changes:
  • Make the switch parameter -Qualifier not positional for Split-Path (#12960) (Thanks @yecril71pl!)
  • Resolve the working directory as literal path for Start-Process when it's not specified (#11946) (Thanks @NoMoreFood!)
  • Make -OutFile parameter in web cmdlets to work like -LiteralPath (#11701) (Thanks @iSazonov!)
  • Engine Updates and Fixes:
  • Ensure null-coalescing LHS is evaluated only once (#12667)
  • Fix path handling bug in PSTask (#12554) (Thanks @IISResetMe!)
  • Remove extra line before formatting group (#12163) (Thanks @iSazonov!)
  • Make module formatting not generate error with strict mode (#11943)
  • Adding more ETW logs to WSMan plugin (#12798) (Thanks @krishnayalavarthi!)
  • Restrict loading of amsi.dll to system32 folder (#12730)
  • General Cmdlet Updates and Fixes:
  • Fix NullReferenceException in CommandSearcher.GetNextCmdlet (#12659) (Thanks @powercode!)
  • Prevent NullReferenceException in Unix computer cmdlets with test hooks active (#12651) (Thanks @vexx32!)
  • Fix issue in Select-Object where Hashtable members (e.g. Keys) cannot be used with -Property or -ExpandProperty (#11097) (Thanks @vexx32!)
  • Fix conflicting shorthand switch -w for pwsh (#12945)
  • Rename the CimCmdlet resource file (#12955) (Thanks @iSazonov!)
  • Remove use of Test-Path in ConciseView (#12778)
  • Flag default switch statement condition clause as keyword (#10487) (Thanks @msftrncs!)
  • Add parameter SchemaFile to Test-Json cmdlet (#11934) (Thanks @beatcracker!)
  • Bring back Certificate provider parameters (#10622) (Thanks @iSazonov!)
  • Fix New-Item to create symbolic link to relative path target (#12797) (Thanks @iSazonov!)
  • Add CommandLine property to Process (#12288) (Thanks @iSazonov!)
  • Adds -MaskInput parameter to Read-Host (#10908) (Thanks @davinci26!)
  • Change CimCmdlets to use AliasAttribute (#12617) (Thanks @thlac!)
  • Code Cleanup:
  • We thank the following contributors!
  • @xtqqczze, @sethvs, @romero126, @kvprasoon, @powercode
  • Tools:
  • Use correct isError parameter with Write-Log (#12989)
  • Disable NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter rule in StyleCop (#12855) (Thanks @xtqqczze!)
  • Add @TylerLeonhardt to PowerShell team list to correct changelog generation (#12927)
  • Enable the upload of ETW traces to CLR CAP in Windows daily build (#12890)
  • Prevent GitHub workflow for daily dotnet build updates from running in forks (#12763) (Thanks @bergmeister!)
  • Add GitHub action for PR creation and Wix file generation logic (#12748)
  • Tests:
  • Remove duplicate tests from Measure-Object.Tests.ps1 (#12683) (Thanks @sethvs!)
  • Fix tests to not write errors to console (#13010)
  • Make sure tabcompletion tests run (#12981)
  • Remove dependency on DNS for Test-Connection tests on macOS (#12943)
  • Restore markdownlint tests (#12549) (Thanks @xtqqczze!)
  • Wrap tests in pester blocks (#12700) (Thanks @xtqqczze!)
  • Build and Packaging Improvements:
  • We thank the following contributors!
  • @iSazonov, @kvprasoon, @Saancreed, @heaths, @xtqqczze
  • Documentation and Help Content:
  • Update README and metadata files for next release (#12717)
  • Update README.md removing experimental status of Arm builds, but Win-Arm64 is still preview for Stable release. (#12707)
  • Add link to Github compare in changelog (#12713) (Thanks @xtqqczze!)
  • Added missing changelog for v7.1.0-preview.2 (#12665)
  • Update required Visual Studio version in build docs (#12628) (Thanks @xtqqczze!)
  • minor update to Distribution_Request.md (#12705) (Thanks @kilasuit!)
  • Update docs.microsoft.com links (#12653) (Thanks @xtqqczze!)
  • Update change log for 6.2.5 release (#12670)
  • Update README.md and metadata.json for next release (#12668)
  • Merge 7.0.1 change log (#12669)
  • Remove markdown unused definitions (#12656) (Thanks @xtqqczze!)
  • Add HoloLens to list of PowerShell adopters (#12940) (Thanks @reynoldsbd!)
  • Update README.md and metadata.json for next releases (#12939)
  • Fix broken link in README.md (#12887) (Thanks @xtqqczze!)
  • Minor typo corrections in Distribution Request Issue Templates (#12744) (Thanks @corbob!)
  • Correct 'review-for-comments' in Governance.md (#11035) (Thanks @MarvTheRobot!)
  • Fix markdown ordered lists (#12657) (Thanks @xtqqczze!)
  • Fix broken docs.microsoft.com link (#12776) (Thanks @xtqqczze!)
  • Replace link to Slack with link to PowerShell Virtual User Group (#12786) (Thanks @xtqqczze!)
  • Update LICENSE.txt so that it's recognized as MIT (#12729)

New in PowerShell 7.1.0 Preview 3 (Jun 11, 2020)

  • Breaking Changes:
  • Fix string parameter binding for BigInteger numeric literals (#11634)
  • Engine Updates and Fixes:
  • Set correct PSProvider full name at module load time (#11813)
  • Experimental Features:
  • Support passing PSPath to native commands (#12386)
  • General Cmdlet Updates and Fixes:
  • Fix incorrect index in format string in ParameterBinderBase (#12630)
  • Copy the CommandInfo property in Command.Clone() (#12301)
  • Apply -IncludeEqual in Compare-Object when -ExcludeDifferent is specified (#12317)
  • Change Get-FileHash to close file handles before writing output (#12474)
  • Fix inconsistent exception message in -replace operator (#12388)
  • Code Cleanup:
  • Tools:
  • Update @PoshChan config to include SSH (#12526)
  • Update log message in Start-PSBootstrap (#12573)
  • Add the .NET SDK installation path to the current process path in tools/UpdateDotnetRuntime.ps1 (#12525)
  • Tests:
  • Make CIM tab completion test case insensitive (#12636)
  • Mark ping tests as Pending due to stability issues in macOS (#12504)
  • Build and Packaging Improvements:
  • Documentation and Help Content:
  • Add link to life cycle doc to distribution request template (#12638)
  • Update TFM reference in build docs (#12514)
  • Fix broken link for blogs in documents (#12471)

New in PowerShell 7.0.2 (Jun 11, 2020)

  • Engine Updates and Fixes:
  • Ensure null-coalescing LHS is evaluated only once (#12667)
  • Restrict loading of amsi.dll to system32 folder (#12730)
  • General Cmdlet Updates and Fixes:
  • Change Get-FileHash to close file handles before writing output (#12474)
  • Tools:
  • Update the PowerShell team list to correct changelog generation (#12927)
  • Tests:
  • Pin major Pester version to 4 to prevent breaking changes caused by upcoming release of v5 (#12262)
  • Build and Packaging Improvements:
  • Update to .NET Core 3.1.5:
  • Bump to .NET 3.1.5 and update dependencies (Internal 11699)
  • Check if Azure Blob exists before overwriting (#12921)
  • Upgrade APIScan version (#12876)
  • Fix break in package build by pinning ffi version to 1.12 (#12889)
  • Update the build to sign any unsigned files as 3rd party Dlls (#12581)

New in PowerShell 7.0.1 (May 14, 2020)

  • Engine Updates and Fixes:
  • Discover assemblies loaded by Assembly.Load(byte[]) and Assembly.LoadFile (#12203)
  • Allow case insensitive paths for determining PSModulePath (#12192)
  • General Cmdlet Updates and Fixes:
  • Add null check for Windows PowerShell install path (#12296)
  • Fix Null Reference error in CSV commands (#12281) (Thanks @iSazonov!)
  • Fix WinCompat module loading to treat Core edition modules higher priority (#12269)
  • Fix <img /> detection regex in web cmdlets (#12099) (Thanks @vexx32!)
  • Miscellaneous minor updates to WinCompat (#11980)
  • Fix ConciseView where error message is wider than window width and doesn't have whitespace (#11880, #11746)
  • Make Test-Connection always use the default synchronization context for sending ping requests (#11517)
  • Tests:
  • Fix CIM tab complete test failure (#12636)
  • Build and Packaging Improvements:Move to .NET Core 3.1.202 SDK and update packages.
  • Documentation and Help Content:
  • Remove the version number of PowerShell from LICENSE (#12019)

New in PowerShell 7.1.0 Preview 2 (May 14, 2020)

  • Breaking Changes:
  • On Windows, Start-Process creates a process environment with
  • all the environment variables from current session,
  • using -UseNewEnvironment creates a new default process environment (#10830) (Thanks @iSazonov!)
  • Do not wrap return result to PSObject when converting ScriptBlock to delegate (#10619)
  • Engine Updates and Fixes:
  • Allow case insensitive paths for determining PSModulePath (#12192)
  • Add PowerShell version 7.0 to compatible version list (#12184)
  • Discover assemblies loaded by Assembly.Load(byte[]) and Assembly.LoadFile (#12203)
  • General Cmdlet Updates and Fixes:
  • Fix WinCompat module loading to treat PowerShell 7 modules with higher priority (#12269)
  • Implement ForEach-Object -Parallel runspace reuse (#12122)
  • Fix Get-Service to not modify collection while enumerating it (#11851) (Thanks @NextTurn!)
  • Clean up the IPC named pipe on PowerShell exit (#12187)
  • Fix <img /> detection regex in web cmdlets (#12099) (Thanks @vexx32!)
  • Allow shorter signed hex literals with appropriate type suffixes (#11844) (Thanks @vexx32!)
  • Update UseNewEnvironment parameter behavior of Start-Process cmdlet on Windows (#10830) (Thanks @iSazonov!)
  • Add -Shuffle switch to Get-Random command (#11093) (Thanks @eugenesmlv!)
  • Make GetWindowsPowerShellModulePath compatible with multiple PS installations (#12280)
  • Fix Start-Job to work on systems that don't have Windows PowerShell registered as default shell (#12296)
  • Specifying an alias and -Syntax to Get-Command returns the aliased commands syntax (#10784) (Thanks @ChrisLGardner!)
  • Make CSV cmdlets work when using -AsNeeded and there is an incomplete row (#12281) (Thanks @iSazonov!)
  • In local invocations, do not require -PowerShellVersion 5.1 for Get-FormatData in order to see all format data. (#11270) (Thanks @mklement0!)
  • Added Support For Big Endian UTF-32 (#11947) (Thanks @NoMoreFood!)
  • Fix possible race that leaks PowerShell object dispose in ForEach-Object -Parallel (#12227)
  • Add -FromUnixTime to Get-Date to allow Unix time input (#12179) (Thanks @jackdcasey!)
  • Change default progress foreground and background colors to provide improved contrast (#11455) (Thanks @rkeithhill!)
  • Fix foreach -parallel when current drive is not available (#12197)
  • Do not wrap return result to PSObject when converting ScriptBlock to delegate (#10619)
  • Don't write DNS resolution errors on Test-Connection -Quiet (#12204) (Thanks @vexx32!)
  • Use dedicated threads to read the redirected output and error streams from the child process for out-of-proc jobs (#11713)

New in PowerShell 7.1.1 Preview 1 (Mar 26, 2020)

  • Breaking Changes:
  • Use invariant culture string conversion for -replace operator (#10954) (Thanks @iSazonov!)
  • Engine Updates and Fixes:
  • Revert the PRs that made DBNull.Value and NullString.Value treated as $null (#11648)
  • Experimental Features:
  • Use invariant culture string conversion for -replace operator (#10954) (Thanks @iSazonov!)
  • General Cmdlet Updates and Fixes:
  • Fix an operator preference order issue in binder code (#12075) (Thanks @DamirAinullin!)
  • Fix NullReferenceException when binding common parameters of type ActionPreference (#12124)
  • Fix default formatting for deserialized MatchInfo (#11728) (Thanks @iSazonov!)
  • Use asynchronous streams in Invoke-RestMethod (#11095) (Thanks @iSazonov!)
  • Address UTF-8 Detection In Get-Content -Tail (#11899) (Thanks @NoMoreFood!)
  • Handle the IOException in Get-FileHash (#11944) (Thanks @iSazonov!)
  • Change 'PowerShell Core' to 'PowerShell' in a resource string (#11928) (Thanks @alexandair!)
  • Bring back MainWindowTitle in PSHostProcessInfo (#11885) (Thanks @iSazonov!)
  • Miscellaneous minor updates to Windows Compatibility (#11980)
  • Fix ConciseView to split PositionMessage using [Environment]::NewLine (#12010)
  • Remove network hop restriction for interactive sessions (#11920)
  • Fix NullReferenceException in SuspendStoppingPipeline() and RestoreStoppingPipeline() (#11870) (Thanks @iSazonov!)
  • Generate GUID for FormatViewDefinition InstanceId if not provided (#11896)
  • Fix ConciseView where error message is wider than window width and doesn't have whitespace (#11880)
  • Allow cross-platform CAPI-compatible remote key exchange (#11185) (Thanks @silijon!)
  • Fix error message (#11862) (Thanks @NextTurn!)
  • Fix ConciseView to handle case where there isn't a console to obtain the width (#11784)
  • Update CmsCommands to use Store vs certificate provider (#11643) (Thanks @mikeTWC1984!)
  • Enable pwsh to work on Windows systems where mpr.dll and STA is not available (#11748)
  • Refactor and implement Restart-Computer for Un*x and macOS (#11319)
  • Add an implementation of Stop-Computer for Linux and macOS (#11151)
  • Fix help function to check if less is available before using (#11737)
  • Update PSPath in certificate_format_ps1.xml (#11603) (Thanks @xtqqczze!)
  • Change regular expression to match relation-types without quotes in Link header (#11711) (Thanks @Marusyk!)
  • Fix error message during symbolic link deletion (#11331)
  • Add custom 'Selected.*' type to PSCustomObject in Select-Object only once (#11548) (Thanks @iSazonov!)
  • Add -AsUTC to the Get-Date cmdlet (#11611)
  • Fix grouping behavior with Boolean values in Format-Hex (#11587) (Thanks @vexx32!)
  • Make Test-Connection always use the default synchronization context for sending ping requests (#11517)
  • Correct startup error messages (#11473) (Thanks @iSazonov!)
  • Ignore headers with null values in web cmdlets (#11424) (Thanks @iSazonov!)
  • Re-add check for Invoke-Command job dispose. (#11388)
  • Revert "Update formatter to not write newlines if content is empty (#11193)" (#11342) (Thanks @iSazonov!)
  • Allow CompleteInput to return results from ArgumentCompleter when AST or Script has matching function definition (#10574) (Thanks @M1kep!)
  • Update formatter to not write new lines if content is empty (#11193)
  • Code Cleanup
  • Tools:
  • Change recommended VS Code extension name from ms-vscode.csharp to ms-dotnettools.csharp (#12083) (Thanks @devlead!)
  • Specify csharp_preferred_modifier_order in EditorConfig (#11775) (Thanks @xtqqczze!)
  • Update .editorconfig (#11675) (Thanks @xtqqczze!)
  • Enable EditorConfig support in OmniSharp (#11627) (Thanks @xtqqczze!)
  • Specify charset in .editorconfig as utf-8 (no BOM) (#11654) (Thanks @xtqqczze!)
  • Configure the issue label bot (#11527)
  • Avoid variable names that conflict with automatic variables (#11392) (Thanks @xtqqczze!)
  • Tests:
  • Add empty preview.md file to fix broken link (#12041)
  • Add helper functions for SSH remoting tests (#11955)
  • Add new tests for Get-ChildItem for FileSystemProvider (#11602) (Thanks @iSazonov!)
  • Ensure that types referenced by PowerShellStandard are present (#10634)
  • Check state and report reason if it's not "opened" (#11574)
  • Fixes for running tests on Raspbian (#11661)
  • Unify pester test syntax for the arguments of -BeOfType (#11558) (Thanks @xtqqczze!)
  • Correct casing for automatic variables (#11568) (Thanks @iSazonov!)
  • Avoid variable names that conflict with automatic variables part 2 (#11559) (Thanks @xtqqczze!)
  • Update pester syntax to v4 (#11544) (Thanks @xtqqczze!)
  • Allow error 504 (Gateway Timeout) in markdown-link tests (#11439) (Thanks @xtqqczze!)
  • Re-balance CI tests (#11420) (Thanks @iSazonov!)
  • Include URL in the markdown-links test error message (#11438) (Thanks @xtqqczze!)
  • Use CIM cmdlets instead of WMI cmdlets in tests (#11423) (Thanks @xtqqczze!)
  • Build and Packaging Improvements
  • Documentation and Help Content:
  • Replace VSCode link in CONTRIBUTING.md (#11475) (Thanks @stevend811!)
  • Remove the version number of PowerShell from LICENSE (#12019)
  • Add the 7.0 change log link to CHANGELOG/README.md (#12062) (Thanks @LabhanshAgrawal!)
  • Improvements to the contribution guide (#12086) (Thanks @ShaydeNofziger!)
  • Update the doc about debugging dotnet core in VSCode (#11969)
  • Update README.md and metadata.json for the next release (#11918) (#11992)
  • Update Adopters.md to include info on Azure Pipelines and GitHub Actions (#11888) (Thanks @alepauly!)
  • Add information about how Amazon AWS uses PowerShell. (#11365) (Thanks @bpayette!)
  • Add link to .NET CLI version in build documentation (#11725) (Thanks @joeltankam!)
  • Added info about DeploymentScripts in ADOPTERS.md (#11703)
  • Update CHANGELOG.md for 6.2.4 release (#11699)
  • Update README.md and metadata.json for next release (#11597)
  • Update the breaking change definition (#11516)
  • Adding System Frontier to the PowerShell Core adopters list ADOPTERS.md (#11480) (Thanks @OneScripter!)
  • Update ChangeLog, README.md and metadata.json for 7.0.0-rc.1 release (#11363)
  • Add AzFunctions to ADOPTERS.md (#11311) (Thanks @Francisco-Gamino!)
  • Add Universal Dashboard to ADOPTERS.md (#11283) (Thanks @adamdriscoll!)
  • Add config.yml for ISSUE_TEMPLATE so that Doc, Security, Support, and Windows PowerShell issues go to URLs (#11153)
  • Add Adopters.md file (#11256)
  • Update Readme.md for preview.6 release (#11108)
  • Update SUPPORT.md (#11101) (Thanks @mklement0!)
  • Update README.md (#11100) (Thanks @mklement0!)

New in PowerShell 7.0.0 (Mar 5, 2020)

  • General Cmdlet Updates and Fixes:
  • Enable Ctrl+C to work for global tool (#11959)
  • Fix ConciseView to not show the line information within the error messages (#11952)
  • Build and Packaging Improvements:
  • Publish PowerShell into the Windows engineering system package format (#11960)
  • Bump .NET core framework to 3.1.2 (#11963)
  • Ensure the man page gzip has the correct name for LTS release (#11956)
  • Bump Microsoft.ApplicationInsights from 2.13.0 to 2.13.1 (#11925)

New in PowerShell 7.0.0 RC3 (Feb 22, 2020)

  • Breaking Changes:
  • Fix Invoke-Command missing error on session termination (#11586)
  • Engine Updates and Fixes:
  • Update the map between console color to VT sequences (#11891)
  • Fix SSH remoting error on Windows platform (#11907)
  • Restore the PowerShellStreamType enum with an ObsoleteAttribute (#11836)
  • Handle cases where CustomEvent was not initially sent (#11807)
  • Fix how COM objects are enumerated (#11795)
  • Fix NativeDllHandler to not throw when file is not found (#11787)
  • Restore SetBreakpoints API (#11622)
  • Do not needlessly pass -l login_name or -p port to ssh (#11518) (Thanks @LucaFilipozzi!)
  • Fix for JEA user role in virtual account (#11668)
  • Do not resolve types from assemblies that are loaded in separate AssemblyLoadContext (#11088)
  • General Cmdlet Updates and Fixes:
  • Sync current directory in WinCompat remote session (#11809)
  • Add WinCompat deny list support using a setting in powershell.config.json (#11726)
  • Fix unnecessary trimming of line resulting in incorrect index with ConciseView (#11670)
  • Code Cleanup:
  • Change name of ClrVersion parameter back to revert change in capitalization (#11623)
  • Tools:
  • Update changelog generation script (#11736) (Thanks @xtqqczze!)
  • Update to CredScan v2 (#11765)
  • Tests:
  • Make sure to test whether we skip a test using consistent logic (#11892)
  • Skip directory creation at root test on macOS (#11878)
  • Update Get-PlatformInfo helper and tests for Debian 10, 11 and CentOS 8 (#11842)
  • Ensure correct pwsh is used for test runs (#11486) (Thanks @iSazonov!)
  • Build and Packaging Improvements:
  • Add LTSRelease value from metadata.json to release.json (#11897)
  • Bump Microsoft.ApplicationInsights from 2.12.1 to 2.13.0 (#11894)
  • Make LTS package always not a preview (#11895)
  • Bump System.Data.SqlClient from 4.8.0 to 4.8.1 (#11879)
  • Change LTSRelease value in metadata.json to true for RC.3 release (Internal 10960)
  • Update LTS logic to depend on metadata.json (#11877)
  • Set default value of LTSRelease to false (#11874)
  • Refactor packaging pipeline (#11852)
  • Make sure LTS packages have symbolic links for pwsh and pwsh-lts (#11843)
  • Bump Microsoft.PowerShell.Native from 7.0.0-rc.2 to 7.0.0 (#11839)
  • Update the NuGet package generation to include cimcmdlet.dll and most of the built-in modules (#11832)
  • Bump Microsoft.PowerShell.Archive from 1.2.4.0 to 1.2.5 (#11833)
  • Bump PSReadLine from 2.0.0-rc2 to 2.0.0 (#11831)
  • Add trace source and serialization primitives to the allowed assembly list (Internal 10911)
  • Update the NextReleaseTag to be v7.0.0-preview.7 (#11372)
  • Change packaging to produce LTS packages (#11772)
  • Build tar packages only when building on Ubuntu (#11766)
  • Bump NJsonSchema from 10.1.4 to 10.1.5 (#11730)
  • Fix symbolic link creation in packaging.psm1 (#11723)
  • Bump Microsoft.ApplicationInsights from 2.12.0 to 2.12.1 (#11708)
  • Bump NJsonSchema from 10.1.3 to 10.1.4 (#11620)
  • Move to latest Azure DevOps agent images (#11704)
  • Bump Markdig.Signed from 0.18.0 to 0.18.1 (#11641)
  • Documentation and Help Content:
  • Add links to diffs on Github in changelog (#11652) (Thanks @xtqqczze!)
  • Fix markdown-link test failure (#11653) (Thanks @xtqqczze!)

New in PowerShell 6.2.4 (Jan 28, 2020)

  • General Cmdlet Updates and Fixes:
  • Enable Start-Process to work on Windows 7 (#10417) (Thanks @iSazonov!)
  • Fix global tool issues around exit code, command line parameters, and paths with spaces (#10461)
  • Make Add-Type usable in applications that host PowerShell (#10587)
  • Build and Packaging ImprovementsL:
  • Update to use TSAv2 (#9914)
  • Update the dotnet SDK install script URL in build.psm1 (#10927)
  • Update dependencies needed by Azure PowerShell and patch for Newtonsoft.Json (Internal 10798)
  • Fix path for getting reference assemblies (Internal 10792)

New in PowerShell 7.0.0 RC2 (Jan 17, 2020)

  • Breaking Changes:
  • Use ISOWeek for week numbers in Get-Date accounting for leap years (#11536) (Thanks @paalbra!)
  • Engine Updates and Fixes:
  • Revert the PRs that made DBNull.Value and NullString.Value treated as $null (#11584)
  • Support expanding ~ in $env:PATH when doing command discovery (#11552)
  • Skip null data in output data received handler to fix a NullReferenceException (#11448) (Thanks @iSazonov!)
  • Add ssh parameter sets for the parameter -JobName in Invoke-Command (#11444)
  • Adding PowerShell Editor Services and PSScriptAnalyzer to tracked modules (#11514)
  • Fix key exchange hang with SecureString for the OutOfProc transports (#11380, #11406)
  • Add setting to disable the implicit WinPS module loading (#11332)
  • General Cmdlet Updates and Fixes:
  • Fix NullReferenceException in ConciseView (#11435) (Thanks @iSazonov!)
  • Remove the default value of $true for the parameter -RequireLicenseAcceptance in New-ModuleManifest (#11512) (Thanks @ThomasNieto!)
  • Make Web Cmdlets skip processing the content headers with a null or empty value for backward compatibility (#11421) (Thanks @spongemike2!)
  • Don't format exceptions that are not ErrorRecord objects (#11415)
  • Mark InitialSessionState.ImportPSSnapIn as Obsolete (#11399)
  • Use PositionMessage for the line context information for ConciseView (#11398)
  • Add trailing line number to filename for ConciseView (#11391)
  • Update HelpInfoUri for all modules in PowerShell 7.0 (#11389)
  • Remove unnecessary newline in ConciseView (#11383)
  • Move Set-StrictMode to the outer script block for ErrorView (#11381)
  • Remove the declaration of Get-Error experimental feature from module manifest (#11369)
  • Update error message if Update-Help fails for the current UICulture (#11356)
  • Test-Connection: Fallback to hop IP Address on -Traceroute without -ResolveDestination (#11335) (Thanks @vexx32!)
  • Add null host name check in WSMan (#11288) (Thanks @iSazonov!)
  • Add Type member to exceptions containing type of exception for Get-Error (#11076)
  • Write an error if argument is a directory in Get-FileHash cmdlet (#11114) (Thanks @iSazonov!)
  • Update Get-Error to not modify the original $Error object (#11125)
  • Code Cleanup:
  • Use .NET code to check for processor architecture instead of P/Invoke (#11046) (Thanks @iSazonov!)
  • Tests:
  • Test fixes for various platforms (#11579, #11541)
  • Various test fixes for debugger and remoting (#11528)
  • DSC test fixes for Alpine and Raspbian (#11508)
  • Normalize line endings before comparing string in tests (#11499)
  • Fix ssh remoting test to work on all platforms (#11500)
  • Build test artifacts for Alpine (#11483)
  • Make null member access tests as string to avoid parsing errors (#11385)
  • Fix test failing when UnixStat feature is disabled (#11370)
  • Update hosting tests to use the SDK version from the build property (#11368)
  • Add retry to Enter-PSHostProcess test (#11360)
  • Build and Packaging Improvements:
  • Bump Microsoft.PowerShell.Native from 7.0.0-rc.1 to 7.0.0.rc.2 (#11583)
  • Update .NET SDK version to 3.1.101 (#11582)
  • Bump PSReadLine from 2.0.0-rc1 to 2.0.0-rc2 (#11581)
  • Bump NJsonSchema from 10.0.28 to 10.1.3 (#11382, #11573)
  • Generate the correct reference assembly for Microsoft.PowerShell.ConsoleHost NuGet package (#11545)
  • Update building of MSIX for RC to use 100 range revision (#11526)
  • Fix symbolic links on Debian 10 packages (#11474)
  • Bump Microsoft.PowerShell.Archive from 1.2.3.0 to 1.2.4.0 (#11502)
  • Add script to rebuild WIX component references (#11485)
  • Bump PackageManagement from 1.4.5 to 1.4.6 (#11427)
  • Bump PowerShellGet from 2.2.2 to 2.2.3 (#11426)
  • Bump ThreadJob from 2.0.2 to 2.0.3 (#11416)
  • Fix symbolic links to libs on Debian 10 (#11390)
  • Improve Ubuntu detection for Ubuntu derivatives like GalliumOS etc (#11155)
  • Documentation and Help Content:
  • Fix broken link in debugging README.md (#11503)

New in PowerShell 7.0.0 RC1 (Dec 17, 2019)

  • Breaking Changes:
  • Make update notification support LTS and default channels (#11132)
  • Engine Updates and Fixes:
  • Improvements in breakpoint APIs for remote scenarios (#11312)
  • Fix PowerShell class definition leaking into another Runspace (#11273)
  • Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 (#11258)
  • Additional Microsoft Modules to track in PS7 Telemetry (#10751)
  • Make approved features non-experimental (#11303)
  • Update ConciseView to use TargetObject if applicable (#11075)
  • Fix NullReferenceException in CompletionCompleters public methods (#11274)
  • Fix apartment thread state check on non-Windows platforms (#11301)
  • Update setting PSModulePath to concatenate the process and machine environment variables (#11276)
  • Bump .NET Core to 3.1.0 (#11260)
  • Fix detection of $PSHOME in front of $env:PATH (#11141)
  • General Cmdlet Updates and Fixes:
  • Fix for issue on Raspbian for setting date of file changes in UnixStat Experimental Feature (#11313)
  • Add -AsPlainText to ConvertFrom-SecureString (#11142)
  • Added WindowsPS version check for WinCompat (#11148)
  • Fix error-reporting in some WinCompat scenarios (#11259)
  • Add native binary resolver (#11032) (Thanks @iSazonov!)
  • Update calculation of char width to respect CJK chars correctly (#11262)
  • Add Unblock-File for macOS (#11137)
  • Fix regression in Get-PSCallStack (#11210) (Thanks @iSazonov!)
  • Remove autoloading of the ScheduledJob module when using Job cmdlets (#11194)
  • Add OutputType to Get-Error cmdlet and preserve original typenames (#10856)
  • Fix null reference in SupportsVirtualTerminal property (#11105)
  • Code Cleanup:
  • Change comment and element text to meet Microsoft standards (#11304)
  • Tests:
  • Make unreliable DSC test pending (#11131)
  • Build and Packaging Improvements:
  • Fix Nuget package signing for Coordinated Package build (#11316)
  • Update dependencies from PowerShell Gallery and NuGet (#11323)
  • Bump Microsoft.ApplicationInsights from 2.11.0 to 2.12.0 (#11305)
  • Bump Microsoft.CodeAnalysis.CSharp from 3.3.1 to 3.4.0 (#11265)
  • Updates packages for Debian 10 and 11 (#11236)
  • Only enable experimental features prior to RC (#11162)
  • Update macOS minimum version (#11163)
  • Bump NJsonSchema from 10.0.27 to 10.0.28 (#11170)

New in PowerShell 7.0.0 Preview 5 (Oct 24, 2019)

  • Breaking Changes:
  • Make $PSCulture consistently reflect in-session culture changes (#10138) (Thanks @iSazonov!)
  • Engine Updates and Fixes:
  • Move to .NET Core 3.1 preview 1 (#10798)
  • Refactor reparse tag checks in file system provider (#10431) (Thanks @iSazonov!)
  • Replace CR and new line with a 0x23CE character in script logging (#10616)
  • Fix a resource leak by unregistering the event handler from AppDomain.CurrentDomain.ProcessExit (#10626)
  • Experimental Features:
  • Implement Get-Error cmdlet as Experimental Feature (#10727,#10800)
  • Add ConciseView for $ErrorView and update it to remove unnecessary text and not color entire line in red (#10641,#10724)
  • Support the pipeline chain operators && and || in PowerShell language (#9849,#10825,#10836)
  • Implement null coalescing (??) and null coalescing assignment (??=) operators (#10636)
  • Support notification on pwsh startup when a new release is available and update notification message (#10689,#10777)
  • General Cmdlet Updates and Fixes:
  • Add -Emphasize parameter to colorize Select-String output (#8963) (Thanks @derek-xia!)
  • Add back Get-HotFix cmdlet (#10740)
  • Make Add-Type usable in applications that host PowerShell (#10587)
  • Use more effective evaluation order in LanguagePrimitives.IsNullLike() (#10781) (Thanks @vexx32!)
  • Improve handling of mixed-collection piped input and piped streams of input in Format-Hex (#8674) (Thanks @vexx32!)
  • Use type conversion in SSHConnection hashtables when value doesn't match expected type (#10720) (Thanks @SeeminglyScience!)
  • Fix Get-Content -ReadCount 0 behavior when -TotalCount is set (#10749) (Thanks @eugenesmlv!)
  • Reword access denied error message in Get-WinEvent (#10639) (Thanks @iSazonov!)
  • Enable tab completion for variable assignment that is enum or type constrained (#10646)
  • Remove unused SourceLength remoting property causing formatting issues (#10765)
  • Add -Delimiter parameter to ConvertFrom-StringData (#10665) (Thanks @steviecoaster!)
  • Add positional parameter for ScriptBlock when using Invoke-Command with SSH (#10721) (Thanks @machgo!)
  • Show line context information if multiple lines but no script name for ConciseView (#10746)
  • Add support for \wsl$ paths to file system provider (#10674)
  • Add the missing token text for TokenKind.QuestionMark in parser (#10706)
  • Set current working directory of each ForEach-Object -Parallel running script to the same location as the calling script. (#10672)
  • Replace api-ms-win-core-file-l1-2-2.dll with Kernell32.dll for FindFirstStreamW and FindNextStreamW APIs (#10680) (Thanks @iSazonov!)
  • Tweak help formatting script to be more StrictMode tolerant (#10563)
  • Add -SecurityDescriptorSDDL parameter to New-Service (#10483) (Thanks @kvprasoon!)
  • Remove informational output, consolidate ping usage in Test-Connection (#10478) (Thanks @vexx32!)
  • Read special reparse points without accessing them (#10662) (Thanks @iSazonov!)
  • Direct Clear-Host output to terminal (#10681) (Thanks @iSazonov!)
  • Add back newline for grouping with Format-Table and -Property (#10653)
  • Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random to allow empty string (#10644)
  • Make suggestion system string distance algorithm case-insensitive (#10549) (Thanks @iSazonov!)
  • Fix null reference exception in ForEach-Object -Parallel input processing (#10577)
  • Code Cleanup:
  • Remove WorkflowJobSourceAdapter reference that is no longer used (#10326) (Thanks @KirkMunro!)
  • Cleanup COM interfaces in jump list code by fixing PreserveSig attributes (#9899) (Thanks @weltkante!)
  • Add a comment describing why -ia is not the alias for -InformationAction common parameter (#10703) (Thanks @KirkMunro!)
  • Rename InvokeCommandCmdlet.cs to InvokeExpressionCommand.cs (#10659) (Thanks @kilasuit!)
  • Add minor code cleanups related to update notifications (#10698)
  • Remove deprecated workflow logic from the remoting setup scripts (#10320) (Thanks @KirkMunro!)
  • Update help format to use proper case (#10678) (Thanks @tnieto88!)
  • Clean up CodeFactor style issues coming in commits for the last month (#10591) (Thanks @iSazonov!)
  • Fix typo in description of PSTernaryOperator experimental feature (#10586) (Thanks @bergmeister!)
  • Performance:
  • Add minor performance improvements for runspace initialization (#10569) (Thanks @iSazonov!)
  • Tools:
  • Make Install-PowerShellRemoting.ps1 handle empty string in PowerShellHome parameter (#10526) (Thanks @Orca88!)
  • Switch from /etc/lsb-release to /etc/os-release in install-powershell.sh (#10773) (Thanks @Himura2la!)
  • Check pwsh.exe and pwsh in daily version on Windows (#10738) (Thanks @centreboard!)
  • Remove unneeded tap in installpsh-osx.sh (#10752)
  • Tests:
  • Temporary skip the flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • Make the event handler leaking test stable (#10790)
  • Sync capitalization in CI YAML (#10767) (Thanks @RDIL!)
  • Add test for the event handler leaking fix (#10768)
  • Add Get-ChildItem test (#10507) (Thanks @iSazonov!)
  • Replace ambiguous language for tests from switch to parameter for accuracy (#10666) (Thanks @romero126!)
  • Build and Packaging Improvements:
  • Update package reference for PowerShell SDK to preview.5 (Internal 10295)
  • Update ThirdPartyNotices.txt (#10834)
  • Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Bump Microsoft.ApplicationInsights from 2.10.0 to 2.11.0 (#10608)
  • Bump NJsonSchema from 10.0.24 to 10.0.27 (#10756)
  • Add MacPorts support to the build system (#10736) (Thanks @Lucius-Q-User!)
  • Bump PackageManagement from 1.4.4 to 1.4.5 (#10728)
  • Bump NJsonSchema from 10.0.23 to 10.0.24 (#10635)
  • Add environment variable to differentiate client/server telemetry in MSI (#10612)
  • Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
  • Bump Microsoft.CodeAnalysis.CSharp from 3.2.1 to 3.3.1 (#10607)
  • Update to .Net Core 3.0 RTM (#10604) (Thanks @bergmeister!)
  • Update MSIX packaging so the version to Windows Store requirements (#10588)
  • Documentation and Help Content:
  • Merge stable and servicing change logs (#10527)
  • Update used .NET version in build docs (#10775) (Thanks @Greg-Smulko!)
  • Replace links from MSDN to docs.microsoft.com in powershell-beginners-guide.md (#10778) (Thanks @iSazonov!)
  • Fix broken DSC overview link (#10702)
  • Update Support_Question.md to link to Stack Overflow as another community resource (#10638) (Thanks @mklement0!)
  • Add processor architecture to distribution request template (#10661)
  • Add new PowerShell MoL book to learning PowerShell docs (#10602)

New in PowerShell 7.0.0 Preview 4 (Sep 19, 2019)

  • Engine Updates and Fixes:
  • Add support to ActionPreference.Break to break into debugger when Debug, Error, Information, Progress, Verbose or Warning messages are generated (#8205) (Thanks @KirkMunro!)
  • Enable starting control panel add-ins within PowerShell Core without specifying .CPL extension. (#9828)
  • Performance:
  • Make ForEach-Object faster for its commonly used scenarios (#10454) and fix ForEach-Object -Parallel performance problem with many runspaces (#10455)
  • Experimental Features:
  • Update PSDesiredStateConfiguration module version to 2.0.3 and bring new tests; enable compilation to MOF on non-Windows and use of Invoke-DSCResource without LCM (#10516)
  • Add APIs for breakpoint management in runspaces and enable attach to process without BreakAll for PowerShell Editor Services (#10338) (Thanks @KirkMunro!)
  • Support ternary operator in PowerShell language (#10367)
  • General Cmdlet Updates and Fixes
  • Add PowerShell Core group policy definitions (#10468)
  • Update console host to support XTPUSHSGR/XTPOPSGR VT control sequences that are used in composability scenarios. (#10208)
  • Add WorkingDirectory parameter to Start-Job (#10324) (Thanks @davinci26!)
  • Remove the event handler that was causing breakpoint changes to be erroneously replicated to the host runspace debugger (#10503) (Thanks @KirkMunro!)
  • Replace api-ms-win-core-job-12-1-0.dll with Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Thanks @iSazonov!)
  • Fix wrong output for New-Service in variable assignment and -OutVariable (#10444) (Thanks @kvprasoon!)
  • Fix global tool issues around exit code, command line parameters and path with spaces (#10461)
  • Fix recursion into OneDrive - change FindFirstFileEx() to use SafeFindHandle type (#10405)
  • Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385)
  • Increase built-with-PowerShell module versions to 7.0.0.0 (#10356)
  • Add throwing an error in Add-Type if a type with the same name already exists (#9609) (Thanks @iSazonov!)
  • Code Cleanup:
  • Convert ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#10317) (Thanks @KirkMunro!)
  • Replace ArrayList with List<T> to get more readable and reliable code without changing functionality (#10333) (Thanks @iSazonov!)
  • Make code style fixes to TestConnectionCommand (#10439) (Thanks @vexx32!)
  • Cleanup AutomationEngine and remove extra SetSessionStateDrive method call (#10416) (Thanks @iSazonov!)
  • Rename default ParameterSetName back to Delimiter for ConvertTo-Csv and ConvertFrom-Csv (#10425)
  • Tools:
  • Update install-powershell.ps1 to check for already installed daily build (#10489)
  • Tests:
  • Add experimental check to ForEach-Object -Parallel tests (#10354) (Thanks @KirkMunro!)
  • Update tests for Alpine validation (#10428)
  • Build and Packaging Improvements
  • Bump PowerShellGet version from 2.2 to 2.2.1 (#10382)
  • Bump PackageManagement version from 1.4.3 to 1.4.4 (#10383)
  • Update README.md and metadata.json for 7.0.0-preview.4 (Internal 10011)
  • Upgrade .Net Core 3.0 version from Preview 9 to RC1 (#10552) (Thanks @bergmeister!)
  • Fix ExperimentalFeature list generation (Internal 9996)
  • Bump PSReadLine version from 2.0.0-beta4 to 2.0.0-beta5 (#10536)
  • Fix release build script to set release tag
  • Update version of Microsoft.PowerShell.Native to 7.0.0-preview.2 (#10519)
  • Upgrade to Netcoreapp3.0 preview9 (#10484) (Thanks @bergmeister!)
  • Make sure the daily coordinated build, knows it is a daily build (#10464)
  • Update the combined package build to release the daily builds (#10449)
  • Remove appveyor reference (#10445) (Thanks @RDIL!)
  • Bump NJsonSchema version from 10.0.22 to 10.0.23 (#10421)
  • Remove the deletion of linux-x64 build folder because some dependencies for Alpine need it (#10407)
  • Documentation and Help Content
  • Update README.md and metadata for v6.1.6 and v6.2.3 releases (#10523)
  • Fix a typo in README.md (#10465) (Thanks @vedhasp!)
  • Add a reference to PSKoans module to Learning Resources documentation (#10369) (Thanks @vexx32!)
  • Update README.md and metadata.json for 7.0.0-preview.3 (#10393)

New in PowerShell 6.2.3 (Sep 13, 2019)

  • Engine Updates and Fixes:
  • Fix debugger performance regression in system lock down mode (#10269)
  • Tests:
  • Remove markdownlint tests due to security issues (#10163)
  • Build and Packaging Improvements:
  • Update DotNet SDK and runtime framework version (Internal 9946)
  • Fix macOS build break (#10207)

New in PowerShell 7.0.0 Preview 3 (Aug 21, 2019)

  • Breaking Changes:
  • Remove kill alias for Stop-Process cmdlet on Unix (#10098) (Thanks @iSazonov!)
  • Support for starting PowerShell as a login shell (pwsh -Login / pwsh -l) support (#10050)
  • Engine Updates and Fixes:
  • Additional Telemetry - implementation of RFC0036 (#10336)
  • Implement ForEach-Object -Parallel as an experimental feature (#10229)
  • Skip JumpList on NanoServer and IoT (#10164)
  • Make Get-DscResource work with class based resources (#10350)
  • Fix #requires -version for pwsh 7 to include 6.1 and 6.2 in PSCompatibleVersions (#9943) (Thanks @bgelens!)
  • Add dispose of _runspaceDebugCompleteEvent event object. (#10323)
  • Fix performance regression from disabling debugger in system lockdown mode (#10269)
  • Special case the posix locale in WildcardPattern (#10186)
  • Use Platform.IsWindowsDesktop instead of checking both NanoServer and IoT (#10205)
  • General Cmdlet Updates and Fixes
  • Enable Experimental Features by default on Preview builds (#10228)
  • Enable -sta and -mta switches for pwsh (-sta is required for GUIs) (#10061)
  • Make breakpoints display better over PowerShell remoting (#10339) (Thanks @KirkMunro!)
  • Add support for AppX reparse points (#10331)
  • Make module name matching for get-module -FullyQualifiedName case insensitive (#10329)
  • Expose PreRelease label in PSModuleInfo formatter (#10316)
  • Add -Raw switch to Select-String which allows returning only the string that was matched (#9901) (Thanks @Jawz84!)
  • Performance
  • Reduce allocations in MakePath() method (#10027) (Thanks @iSazonov!)
  • Remove extra check that the system dll exists (#10244) (Thanks @iSazonov!)
  • Avoid boxing when passing value type arguments to PSTraceSource.WriteLine (#10052) (Thanks @iSazonov!)
  • Reduce allocations in Escape() and Unescape() (#10041) (Thanks @iSazonov!)
  • Code Cleanup:
  • Add the license header to nanoserver.tests.ps1 (#10171)
  • Mark -parallel and -throttlelimit reserved for foreach and switch statements (#10328) (Thanks @KirkMunro!)
  • Deprecate workflow debugging code (#10321) (Thanks @KirkMunro!)
  • Fix style issues in InternalCommands.cs (#10352) (Thanks @iSazonov!)
  • Deprecate internal HelpCategory.Workflow enumeration (#10319) (Thanks @KirkMunro!)
  • Update Microsoft.PowerShell.CoreCLR.Eventing to resolve conflict with System.Diagnostics.EventLog (#10305)
  • Don't collect process start time as it's not being used on consolehost startup (#10294)
  • .NET Core 3.0 now aborts the thread for us. Remove the ThreadAbortException code (#10230) (Thanks @iSazonov!)
  • Use nameof() in LocationGlobber and PathInfo (#10200) (Thanks @iSazonov!)
  • Tools:
  • Fix Hungarian prefix my (#9976) (Thanks @RDIL!)
  • Fix spelling error in issue template (#10256)
  • Quote arguments in .vscode/tasks.json in case of spaces (#10204) (Thanks @msftrncs!)
  • Tests:
  • Remove markdownlint tests due to security issues (#10163)
  • Add tests for WildcardPattern.Escape() and Unescape() (#10090) (Thanks @iSazonov!)
  • Cleanup Docker release testing (#10310) (Thanks @RDIL!)
  • Build and Packaging Improvements:
  • Update Microsoft.Management.Infrastructure version to 2.0.0-preview.2 (#10366)
  • Move to .NET Core 3.0 preview.8 (#10351) (#10227) (Thanks @bergmeister!)
  • Bump NJsonSchema from 10.0.21 to 10.0.22 (#10364)
  • Add Microsoft.PowerShell.CoreCLR.Eventing.dll to exception list for build fix (#10337)
  • Bump Microsoft.CodeAnalysis.CSharp from 3.1.0 to 3.2.1 (#10273) (#10330)
  • Revert the temporary AzDevOps artifact workaround (#10260)
  • Fix macOS build break (#10207)
  • Documentation and Help Content:
  • Update docs for 7.0.0-preview.2 release (#10160) (#10176)
  • PSSA also includes formatting (#10172)
  • Refactor security policy documentation so that they appear in the Security policy tab of GitHub (#9905) (Thanks @bergmeister!)
  • Add tooling section to PR template (#10144)
  • Update README.md and metadata.json for next releases (#10087)
  • Update DotNet Support links (#10145)
  • Update our language on our policy applying to security issues (#10304)
  • Update dead links from powershell.com (#10297)
  • Create Distribution_Request issue template (#10253)
  • Fix: Removed dependency file with Dependabot (#10212) (Thanks @RDIL!)

New in PowerShell 7.0.0 Preview 2 (Jul 18, 2019)

  • Breaking Changes:
  • Cleanup workflow - remove PSProxyJob (#10083) (Thanks @iSazonov!)
  • Disable Enter-PSHostProcess cmdlet when system in lock down mode (Internal 9168)
  • Engine Updates and Fixes:
  • Consider DBNull.Value and NullString.Value the same as $null when comparing with $null and casting to bool (#9794) (Thanks @vexx32!)
  • Allow methods to be named after keywords (#9812) (Thanks @vexx32!)
  • Create JumpList in STA thread as some COM APIs are strictly STA only to avoid sporadic CLR crashes (#9928) (#10057) (Thanks @bergmeister!)
  • Skip JumpList on NanoServer and IoT (#10164)
  • Display COM method signature with argument names (#9858) (Thanks @nbkalex!)
  • Use the original precision (prior-dotnet-core-3) for double/float-to-string conversion (#9893)
  • Import-DscResource should allow to overwrite DSC built-in resources. (#9879)
  • Add ability to pass InitialSessionState to the ConsoleShell.Start (#9802) (Thanks @asrosent!)
  • Have console host not enter command prompt mode when using Read-Host -Prompt (#9743)
  • Fix use of Start-Process http://bing.com (#9793)
  • Support negative numbers in -split operator (#8960) (Thanks @ece-jacob-scott!)
  • General Cmdlet Updates and Fixes:
  • Support DSC compilation on Linux. (#9834)
  • Add alias for Service StartType (#9940) (Thanks @NeoBeum!)
  • Add -SecurityDescriptorSddl parameter to Set-Service (#8626) (Thanks @kvprasoon!)
  • Fix auto-download of files when enumerating files from a OneDrive folder (#9895)
  • Set request headers when request body is empty in Web Cmdlets (#10034) (Thanks @markekraus!)
  • Fix wrong comparison in CertificateProvider (#9987) (Thanks @iSazonov!)
  • Sync docs changes into the embedded help for pwsh (#9952)
  • Display Duration when displaying HistoryInfo (#9751) (Thanks @rkeithhill!)
  • Update console startup and help url for PowerShell docs (#9775)
  • Make UseAbbreviationExpansion and TempDrive official features (#9872)
  • Fix Get-ChildItem -Path with wildcard char (#9257) (Thanks @kwkam!)
  • Performance:
  • Add another fast path to WildcardPattern.IsMatch for patterns that only have an asterisk in the end (#10054) (Thanks @iSazonov!)
  • Move some of the creations of WildcardPattern in outer loop to avoid unnecessary allocation (#10053) (Thanks @iSazonov!)
  • Make Foreach-Object 2 times faster by reducing unnecessary allocations and boxing (#10047)
  • Use a static cache for PSVersionInfo.PSVersion to avoid casting SemanticVersion to Version every time accessing that property (#10028)
  • Reduce allocations in NavigationCmdletProvider.NormalizePath() (#10038) (Thanks @iSazonov!)
  • Add fast path for wildcard patterns that contains no wildcard characters (#10020)
  • Avoid Assembly.GetName() in ClrFacade.GetAssemblies(string) to reduce allocations of CultureInfo objects (#10024) (Thanks @iSazonov!)
  • Avoid the int[] and int[,] allocation when tokenizing line comments and matching wildcard pattern (#10009)
  • Tools:
  • Update change log generation tool to deal with private commits (#10096)
  • Update Start-PSBuild -Clean logic of git clean to ignore locked files from VS2019 (#10071) (Thanks @bergmeister!)
  • Indent fix in markdown-link.tests.ps1 (#10049) (Thanks @RDIL!)
  • Start-PSBuild -Clean does not remove all untracked files (#10022) (Thanks @vexx32!)
  • Add module to support Pester tests for automating debugger commands (stepInto, stepOut, etc.), along with basic tests (#9825) (Thanks @KirkMunro!)
  • Remove markdownlint tests due to security issues (#10163)
  • Code Cleanup:
  • Cleanup CompiledScriptBlock.cs (#9735) (Thanks @vexx32!)
  • Cleanup workflow code (#9638) (Thanks @iSazonov!)
  • Use AddOrUpdate() instead of Remove then Add to register runspace (#10007) (Thanks @iSazonov!)
  • Suppress PossibleIncorrectUsageOfAssignmentOperator rule violation by adding extra parenthesis (#9460) (Thanks @xtqqczze!)
  • Use AddRange in GetModules() (#9975) (Thanks @iSazonov!)
  • Code cleanup: use IndexOf(char) overload (#9722) (Thanks @iSazonov!)
  • Move consts and methods to single CharExtensions class (#9992) (Thanks @iSazonov!)
  • Cleanup: Use EndsWith(char) and StartsWith(char) (#9994) (Thanks @iSazonov!)
  • Remove LCIDToLocaleName P/Invoke from GetComputerInfoCommand (#9716) (Thanks @iSazonov!)
  • Cleanup Parser tests (#9792) (Thanks @vexx32!)
  • Remove EtwActivity empty constructor and make minor style fixes (#9958) (Thanks @RDIL!)
  • Fix style issues from last commits (#9937) (Thanks @iSazonov!)
  • Remove dead code about IsTransparentProxy (#9966)
  • Fix minor typos in code comments (#9917) (Thanks @RDIL!)
  • Style fixes for CimAsyncOperations (#9945) (Thanks @RDIL!)
  • Fix minor CodeFactor style issues in ModuleCmdletBase (#9915) (Thanks @RDIL!)
  • Clean up the use of SetProfileRoot and StartProfile in ConsoleHost (#9931)
  • Fix minor style issues come from last commits (#9640) (Thanks @iSazonov!)
  • Improve whitespace for Parser tests (#9806) (Thanks @vexx32!)
  • Use new string.ConCat() in Process.cs (#9720) (Thanks @iSazonov!)
  • Code Cleanup: Tidy up scriptblock.cs (#9732) (Thanks @vexx32!)
  • Tests:
  • Mark Set-Service tests with password as Pending (#10146)
  • Fix test password generation rule to meet Windows complexity requirements (#10143)
  • Add test for New-Item -Force (#9971) (Thanks @robdy!)
  • Fix gulp versions (#9916) (Thanks @RDIL!)
  • Indentation fixes in ci.psm1 (#9947) (Thanks @RDIL!)
  • Remove some Travis-CI references (#9919) (Thanks @RDIL!)
  • Improve release testing Docker images (#9942) (Thanks @RDIL!)
  • Use yarn to install global tools (#9904) (Thanks @RDIL!)
  • Attempt to work around the zip download issue in Azure DevOps Windows CI (#9911)
  • Update PowerShell SDK version for hosting tests (Internal 9185)
  • Build and Packaging Improvements:
  • Update the target framework for reference assemblies to netcoreapp3.0 (#9747)
  • Pin version of netDumbster to 2.0.0.4 (#9748)
  • Fix daily CodeCoverageAndTest build by explicitly calling Start-PSBootStrap (#9724)
  • Split the fxdependent package on Windows into two packages (#10134)
  • Bump System.Data.SqlClient (#10109)
  • Bump System.Security.AccessControl (#10100)
  • Add performance tag to change log command (Internal)
  • Upgrade .Net Core 3 SDK from preview5 to preview6 and related out of band Nuget packages from 2.1 to 3.0-preview6 (#9888) (Thanks @bergmeister!)
  • Add to /etc/shells on macOS (#10066)
  • Bump Markdig.Signed from 0.17.0 to 0.17.1 (#10062)
  • Update copyright symbol for NuGet packages (#9936)
  • Download latest version (6.2.0) of PSDesiredStateConfiguration nuget package. (#9932)
  • Add automated RPM signing to release build (#10013)
  • Bump ThreadJob from 1.1.2 to 2.0.1 in /src/Modules (#10003)
  • Bump PowerShellGet from 2.1.4 to 2.2 in /src/Modules (#9933) (#10085)
  • Bump PackageManagement from 1.4 to 1.4.3 in /src/Modules (#9820) (#9918) (#10084)
  • Update to use TSAv2 (#9914)
  • Bump NJsonSchema from 9.14.1 to 10.0.21 (#9805) (#9843) (#9854) (#9862) (#9875) (#9885) (#9954) (#10017)
  • Bump System.Net.Http.WinHttpHandler from 4.5.3 to 4.5.4 (#9786)
  • Bump Microsoft.ApplicationInsights from 2.9.1 to 2.10.0 (#9757)
  • Increase timeout of NuGet job to workaround build timeout (#9772)
  • Documentation and Help Content:
  • Change log 6.1.4 (#9759)
  • Change log for release 6.2.1 (#9760)
  • Add quick steps for adding docs to cmdlets (#9978)
  • Update readme gitter badge (#9920) (Thanks @RDIL!)
  • Update README and metadata.json for 7.0.0-preview.1 release (#9767)

New in PowerShell 6.2.2 (Jul 17, 2019)

  • Breaking Changes:
  • Disable Enter-PSHostProcess cmdlet when system in lock down mode (Internal 8969)
  • Engine Updates and Fixes:
  • Create JumpList in STA thread as some COM APIs are strictly STA only to avoid sporadic CLR crashes (#10057, #9928) (Thanks @bergmeister!)
  • Build and Packaging Improvements:
  • Update DotNet SDK and runtime framework version (Internal 9082, 9088, 9092)
  • Make Hashtable case insensitivity test use current culture rather than shell to set culture (Internal 8529)
  • Add automated RPM signing to release build (#10013)
  • Update copyright symbol for NuGet packages (#9936)
  • Bump Microsoft.ApplicationInsights from 2.9.1 to 2.10.0 (#9757)
  • Switch from BMP to PNG for graphical MSI installer assets (#9606)
  • Bump System.Net.Http.WinHttpHandler from 4.5.3 to 4.5.4 (#9789)
  • Enable building of MSIX package (#9289, #9715)

New in PowerShell 7.0.0 Preview (May 31, 2019)

  • Breaking Changes:
  • Disable the debugger when in system lock-down mode (#9645)
  • Fix Get-Module -FullyQualifiedName option to work with paths (#9101) (Thanks @pougetat!)
  • Fix -NoEnumerate behavior in Write-Output (#9069) (Thanks @vexx32!)
  • Make command searcher treat wildcard as literal if target exists for execution (#9202)
  • Engine Updates and Fixes:
  • Port PowerShell to .NET Core 3.0 (#9597)
  • Make sure we always return an object in command searcher (#9623)
  • Support line continuance with pipe at the start of a line (#8938) (Thanks @KirkMunro!)
  • Add support for ValidateRangeKind to ParameterMetadata.GetProxyAttributeData (#9059) (Thanks @indented-automation!)
  • Allow passing just a dash as an argument to a file via pwsh (#9479)
  • Fix tab completion for functions (#9383)
  • Reduce string allocation in console output code (#6882) (Thanks @iSazonov!)
  • Fixing test run crash by not passing script block to the callback (#9298)
  • Add Binary Parsing Support & Refactor TryGetNumberValue & ScanNumberHelper (#7993) (Thanks @vexx32!)
  • Add PowerShell remoting enable/disable cmdlet warning messages (#9203)
  • Add xsd for cdxml (#9177)
  • Improve formatting performance by having better primitives on PSObject (#8785) (Thanks @powercode!)
  • Improve type inference of array literals and foreach statement variables (#8100) (Thanks @SeeminglyScience!)
  • Fix for FormatTable remote deserialization regression (#9116)
  • Get MethodInfo from .NET public type with explicit parameter types (#9029) (Thanks @iSazonov!)
  • Add retry logic to the operation that updates powershell.config.json (#8779) (Thanks @iSazonov!)
  • Update the task-based async APIs added to PowerShell to return a Task object directly (#9079)
  • Add 5 InvokeAsync overloads and StopAsync to the PowerShell type (#8056) (Thanks @KirkMunro!)
  • Remove unused cached types (#9015)
  • General Cmdlet Updates and Fixes:
  • Fix use of unicode ellipsis in XML for truncating error messages (#9589)
  • Improve error message in FileSystemProvider when removing a folder containing hidden or read only files (#9551) (Thanks @iSazonov!)
  • Enable recursion into OneDrive by not treating placeholders as symlinks (#9509)
  • Change MatchType for EnumerationOptions to be Win32 making this consistent with Windows PowerShell (#9529)
  • Add Support for null Usernames in Web Cmdlet Basic Auth (#9536) (Thanks @markekraus!)
  • Fix null reference when Microsoft.PowerShell.Utility is loaded as a snapin in hosting scenarios (#9404)
  • Update width of DateTime to accommodate change in Japan DateTime format with new era starting 5/1/19 (#9503)
  • Fix Get-Runspace runspace object format Type column (#9438)
  • Return correct casing of filesystem path during normalization (#9250)
  • Move warning message to EndProcessing so it only shows up once (#9385)
  • Fix the platform check in CimDSCParser.cs (#9338)
  • New New-PSBreakpoint cmdlet & new -Breakpoint parameter for Debug-Runspace (#8923)
  • Fix help paging issues on macOS/Linux and with custom pager that takes arguments (#9033) (Thanks @rkeithhill!)
  • Add QuoteFields parameter to ConvertTo-Csv and Export-Csv (#9132) (Thanks @iSazonov!)
  • Fix progress for Get-ComputerInfo (#9236) (Thanks @powercode!)
  • Add ItemSeparator and AltItemSeparator properties in ProviderInfo (#8587) (Thanks @renehernandez!)
  • Add timestamp to pshost trace listener (#9230)
  • Implement Get-Random -Count without specifying an InputObject list (#9111) (Thanks @pougetat!)
  • Enable SecureString cmdlets for non-Windows (#9199)
  • Add Obsolete message to Send-MailMessage (#9178)
  • Fix Restart-Computer to work on localhost when WinRM is not present (#9160)
  • Make Start-Job throw terminating exception when -RunAs32 is specified in 64-bit pwsh (#9143)
  • Make Start-Job throw terminating error when PowerShell is being hosted (#9128)
  • Made -Subject parameter of Send-MailMessage command no longer mandatory. (#8961) (Thanks @ece-jacob-scott!)
  • Make New-ModuleManifest consistent with Update-ModuleManifest (#9104) (Thanks @pougetat!)
  • Add support for empty NoteProperty in Group-Object (#9109) (Thanks @iSazonov!)
  • Remove Hardlink from Mode property in default file system format (#8789) (Thanks @powercode!)
  • Fixing issue with help progress with Get-Help not calling Completed (#8788) (Thanks @powercode!)
  • Allow Test-ModuleManifest to work when RootModule has no file extension (#8687) (Thanks @pougetat!)
  • Add UseQuotes parameter to Export-Csv and ConvertTo-Csv cmdlets (#8951) (Thanks @iSazonov!)
  • Update version for PowerShell.Native and hosting tests (#8983)
  • Refactor shuffle in Get-Random to save a full iteration of the objects. (#8969) (Thanks @st0le!)
  • Suggest -Id pid for Get-Process pid (#8959) (Thanks @MohiTheFish!)
  • Code Cleanup:
  • Attributes.cs - Style / Formatting Fixes (#9625) (Thanks @vexx32!)
  • Remove Workflow from PSSessionType (#9618) (Thanks @iSazonov!)
  • Update use of "PowerShell Core" to just "PowerShell" (#9513)
  • Use IPGlobalProperties on all platforms for getting host name (#9530) (Thanks @iSazonov!)
  • Remove IsSymLink() P/Invoke on Unix (#9534) (Thanks @iSazonov!)
  • Cleanup unused P/Invokes on Unix (#9531) (Thanks @iSazonov!)
  • Update use of Windows PowerShell to just PowerShell (#9508)
  • Cleanup: sort usings (#9490) (Thanks @iSazonov!)
  • Cleanup Export-Command from AssemblyInfo (#9455) (Thanks @iSazonov!)
  • Run CodeFormatter for System.Management.Automation (#9402) (Thanks @iSazonov!)
  • Run CodeFormatter with BraceNewLine,UsingLocation,FormatDocument,NewLineAbove rules (#9393) (Thanks @iSazonov!)
  • Run CodeFormatter for WSMan.Management (#9400) (Thanks @iSazonov!)
  • Run CodeFormatter for WSMan.Runtime (#9401) (Thanks @iSazonov!)
  • Run CodeFormatter for Security module (#9399) (Thanks @iSazonov!)
  • Run CodeFormatter for MarkdownRender (#9398) (Thanks @iSazonov!)
  • Run CodeFormatter for Eventing (#9394) (Thanks @iSazonov!)
  • Use Environment.NewLine for new lines in ConsoleHost code (#9392) (Thanks @iSazonov!)
  • Run CodeFormatter for Diagnostics module (#9378) (Thanks @iSazonov!)
  • Run CodeFormatter for Microsoft.PowerShell.Commands.Management (#9377) (Thanks @iSazonov!)
  • Run CodeFormatter for Utility module (#9376) (Thanks @iSazonov!)
  • Style: Match file name casings of C# source files for Utility commands (#9329) (Thanks @ThreeFive-O!)
  • Update repo for Ubuntu 14.04 EOL (#9324)
  • Cleanup: sort usings (#9283) (Thanks @iSazonov!)
  • Fix StyleCop Hungarian Notation (#9281) (Thanks @iSazonov!)
  • Style: Update StyleCop rules (#8500)
  • Enhance the P/Invoke code for LookupAccountSid in Process.cs (#9197) (Thanks @iSazonov!)
  • Fix coding style for NewModuleManifestCommand (#9134) (Thanks @pougetat!)
  • Remove unused method CredUIPromptForCredential from HostUtilities.cs (#9220) (Thanks @iSazonov!)
  • Remove non-existent paths from .csproj files (#9214) (Thanks @ThreeFive-O!)
  • Typo in new parameter set (#9205)
  • Minor FileSystemProvider cleanup (#9182) (Thanks @RDIL!)
  • Cleanup style issues in CoreAdapter and MshObject (#9190) (Thanks @iSazonov!)
  • Minor cleanups in Process.cs (#9195) (Thanks @iSazonov!)
  • Refactor ReadConsole P/Invoke in ConsoleHost (#9165) (Thanks @iSazonov!)
  • Clean up Get-Random cmdlet (#9133) (Thanks @pougetat!)
  • Fix to not pass StringBuilder by reference (out or ref) in P/Invoke (#9066) (Thanks @iSazonov!)
  • Update AppVeyor comments in Implicit.Remoting.Tests.ps1 (#9020) (Thanks @RDIL!)
  • Remove AppImage from tools (#9100) (Thanks @Geweldig!)
  • Using supported syntax for restoring warnings - Visual Studio 2019 complains about enable. (#9107) (Thanks @powercode!)
  • Use Type.EmptyTypes and Array.Empty<T>() to replace our custom code of the same functionality (#9042) (Thanks @iSazonov!)
  • Rename private methods in MshCommandRuntime.cs (#9074) (Thanks @vexx32!)
  • Cleanup & update ErrorRecord class code style (#9021) (Thanks @vexx32!)
  • Remove unused cached types from CachedReflectionInfo (#9019) (Thanks @iSazonov!)
  • Fix CodeFactor brace style issues in FileSystemProvider (#8992) (Thanks @RDIL!)
  • Use List.AddRange to optimize -Split (#9001) (Thanks @iSazonov!)
  • Remove Arch Linux Dockerfile (#8990) (Thanks @RDIL!)
  • Cleanup dllimport (#8847) (Thanks @iSazonov!)
  • Tools:
  • Convert custom attribute ValidatePathNotInSettings to function (#9406)
  • Create DependaBot config.yml (#9368)
  • Add more users to failures detection and fix alias for static analysis (#9292)
  • Make install-powershell.ps1 work on Windows Server 2012 R2 (#9271)
  • Enable PoshChan for getting and automatic retrieval of test failures for a PR (#9232)
  • Fix capitalization cases for PoshChan (#9188) (Thanks @RDIL!)
  • Update to new format for PoshChan settings and allow all users access to reminders (#9198)
  • Fix settings to use dashes instead of underscore (#9167)
  • Fix AzDevOps context names and add all PowerShell team members (#9164)
  • Add settings for PoshChan (#9162)
  • Adding CmdletsToExport and AliasesToExport to test module manifests. (#9108) (Thanks @powercode!)
  • Delete Docker manifest creation script (#9076) (Thanks @RDIL!)
  • Make install scripts more consistent over different operating systems (#9071) (Thanks @Geweldig!)
  • Comment cleanup in releaseTools.psm1 (#9064) (Thanks @RDIL!)
  • Fix duplicate recommendation of Azure DevOps extension for Visual Studio Code (#9032) (Thanks @ThreeFive-O!)
  • Code coverage artifacts (#8993)
  • Tests:
  • Update version tests to use NextReleaseVersion from metadata.json (#9646)
  • Convert Windows CI to stages (#9607)
  • Multiple test fixes and improved logging for fragile tests (#9569)
  • Add unit and feature tests for Send-MailMessage (#9213) (Thanks @ThreeFive-O!)
  • Update to Pester 4.8.0 (#9510)
  • Ensure Wait-UntilTrue returns $true in Pester tests (#9458) (Thanks @xtqqczze!)
  • Adding tests for Remove-Module (#9276) (Thanks @pougetat!)
  • Allow CI to run on branches with this name pattern: feature* (#9415)
  • Mark tests in macOS CI which use AppleScript as pending/inconclusive (#9352)
  • Reduce time for stack overflow test (#9302)
  • Added more tests for Import-Alias by file regarding parsing difficult aliases strings (#9247) (Thanks @SytzeAndr!)
  • Move from npm to Yarn for markdown tests (#9312) (Thanks @RDIL!)
  • Only search for functions in Constrained Language help tests (#9301)
  • Fix skipping of tests in RemoteSession.Basic.Tests.ps1 (#9304)
  • Make sure non-Windows CI fails when a test fails (#9303)
  • Update tests to account for when $PSHOME is read only (#9279)
  • Add tests for command globbing (#9180)
  • Fix tab completion test to handle multiple matches (#8891)
  • Refactor macOS CI so that tests run in parallel (#9056)
  • Fix Enter-PSHostProcess tests flakiness (#9007)
  • Add source for Install-Package to install netDumbster (#9081)
  • Style fixes for Select-Xml tests (#9037) (Thanks @ThreeFive-O!)
  • Enable cross-platform Send-MailMessage tests for CI (#8859) (Thanks @ThreeFive-O!)
  • Added RequireSudoOnUnix tags to PowerShellGet tests and remove pending parameter (#8954) (Thanks @RDIL!)
  • Style fixes for ConvertTo-Xml tests (#9036) (Thanks @ThreeFive-O!)
  • Align name schemes for test files (#9034) (Thanks @ThreeFive-O!)
  • Pending NamedPipeConnectionInfo test (#9003) (Thanks @iSazonov!)
  • Add test for -WhatIf for New-FileCatalog (#8966) (Thanks @mjanko5!)
  • Build and Packaging Improvements:
  • Fix the PowerShell version number in MSI packages (Internal 8547)
  • Add cleanup before building test package (Internal 8529)
  • Update version for SDK tests and Microsoft.PowerShell.Native package (Internal 8512)
  • Update the target framework for reference assemblies to netcoreapp3.0 (Internal 8510)
  • Fix syncing modules from PowerShell gallery by normalizing version numbers (Internal 8504)
  • Add tsaVersion property as TsaV1 for compliance build phase (#9176)
  • Add ability to cross compile (#9374)
  • Add AcessToken variable to jobs that perform signing (#9351)
  • Add CI for install-powershell.sh and Amazon Linux (#9314)
  • Add component detection to all jobs (#8964)
  • Add Preview assets for MSIX (#9375)
  • Add secret scanning to CI (#9249)
  • Build test packages for windows, linux-x64, linux-arm, linux-arm64 and macOS (#9476)
  • Bump gulp from 4.0.0 to 4.0.2 (#9441, #9544)
  • Bump Markdig.Signed from 0.15.7 to 0.17.0 (#8981, #9579)
  • Bump Microsoft.CodeAnalysis.CSharp from 2.10.0 to 3.1.0 (#9277, 9653)
  • Bump Microsoft.PowerShell.Native from 6.2.0-rc.1 to 6.2.0 (#9200)
  • Bump Microsoft.Windows.Compatibility from 2.0.1 to 2.1.1 (#9605)
  • Bump Newtonsoft.Json from 12.0.1 to 12.0.2 (#9431, #9434)
  • Bump NJsonSchema from 9.13.19 to 9.14.1 (#9044, #9136, #9166, #9172, #9184, #9196, #9265, #9349, #9388, #9421, #9429, #9478, #9523, #9616)
  • Bump PackageManagement from 1.3.1 to 1.4 (#9567, #9650)
  • Bump PowerShellGet from 2.0.4 to 2.1.4 in /src/Modules (#9110, #9145, #9600, #9691)
  • Bump PSReadLine from 2.0.0-beta3 to 2.0.0-beta4 (#9554)
  • Bump SelfSignedCertificate (#9055)
  • Bump System.Data.SqlClient from 4.6.0 to 4.6.1 (#9601)
  • Bump System.Net.Http.WinHttpHandler from 4.5.2 to 4.5.3 (#9333)
  • Bump Microsoft.PowerShell.Archive from 1.2.2.0 to 1.2.3.0 (#9593)
  • Check to be sure that the test result file has actual results before uploading (#9253)
  • Clean up static analysis config (#9113) (Thanks @RDIL!)
  • Create codecoverage and test packages for non-Windows (#9373)
  • Create test package for macOS on release builds (#9344)
  • Disable Homebrew analytics in macOS Azure DevOps builds (#9130) (Thanks @RDIL!)
  • Enable building of MSIX package (#9289)
  • Enable building on Kali Linux (#9471)
  • Fix artifact Download issue in release build (#9095)
  • Fix build order in windows-daily build (#9275)
  • Fix dependencies of NuGet build to wait on DEB uploads to finish (#9118)
  • Fix MSI Upgrade failure for preview builds (#9013)
  • Fix publishing daily nupkg to MyGet (#9269)
  • Fix the failed test and update Publish-TestResults to make Azure DevOps fail the task when any tests failed (#9457)
  • Fix variable name in windows-daily.yml (#9274)
  • Fixed Dockerfile syntax highlighting (#8991) (Thanks @RDIL!)
  • Make CodeCoverage configuration build portable symbol files (#9346)
  • Make Linux CI parallel (#9209)
  • Move artifacts to artifact staging directory before uploading (#9273)
  • Performance improvements for release build (#9179)
  • Preserve user shortcuts pinned to TaskBar during MSI upgrade (#9305) (Thanks @bergmeister!)
  • Publish global tool packages to pwshtool blob and bug fixes (#9163)
  • Publish test package on release builds (#9063)
  • Publish windows daily build to MyGet (#9288)
  • Remove appveyor references from packaging tools (#9117) (Thanks @RDIL!)
  • Remove code from CI.psm1 to optionally run Feature tests (#9212) (Thanks @RDIL!)
  • Remove duplicate PoliCheck task and pin to specific version (#9297)
  • Run Start-PSBootStrap in Code Coverage build to install .NET SDK (#9690)
  • Switch from BMP to PNG for graphical MSI installer assets (#9606)
  • Translate Skipped the test results into something Azure DevOps does NOT understand (#9124)
  • Update Markdown test dependencies (#9075) (Thanks @RDIL!)
  • Update UML to represent SDK and Global tool builds (#8997)
  • Use IL assemblies for NuGet packages to reduce size (#9171)
  • Documentation and Help Content:
  • Add checkbox to PR checklist for experimental feature use (#9619) (Thanks @KirkMunro!)
  • Updating committee membership (#9577) (Thanks @HemantMahawar!)
  • Update CODEOWNERS file to reduce noise (#9547)
  • add download link to raspbian64 to readme (#9520)
  • Update Support_Question.md (#9218) (Thanks @vexx32!)
  • Fix version of PowerShellGet in changelog (#9335)
  • Update release process template to clarify that most tasks are coordinated by the release pipeline (#9238)
  • Fix several problems in WritingPesterTests guideline (#9078) (Thanks @ThreeFive-O!)
  • Update ChangeLog for 6.2.0 (#9245)
  • Update docs for v6.2.0 (#9229)
  • Update feature-request issue template to move instructions into comments. (#9187) (Thanks @mklement0!)
  • Update link to Contributing guide to new PowerShell-Doc repo (#9090) (Thanks @iSazonov!)
  • Correct punctuation in README.md (#9045) (Thanks @yashrajbharti!)
  • Update Docker README.md (#9010) (Thanks @RDIL!)
  • Update release process issue template (#9051) (Thanks @RDIL!)
  • Documentation Cleanup (#8851) (Thanks @RDIL!)
  • Update docs for 6.2.0-rc.1 release (#9022)
  • Update release template (#8996)

New in PowerShell 6.2.1 (May 22, 2019)

  • Engine Updates and Fixes:
  • Re-enable tab completion for functions (#9383)
  • Disable debugger in System Lock down mode (Internal 8428)
  • Code Cleanup:
  • Update repo for Ubuntu 14.04 EOL (#9324)
  • Tests:
  • Fix skipping of tests in RemoteSession.Basic.Tests.ps1 (#9304)
  • Update tests to account for when $PSHOME is read only (#9279)
  • Mark tests in macOS CI which use applescript as pending/inconclusive (#9352)
  • Make sure non-Windows CI fails when a test fails (#9303)
  • Build and Packaging Improvements:
  • Partially revert "Fix the failed test and update Publish-TestResults to make AzDO fail the task when any tests failed (#9457)"
  • Bump Markdig.Signed from 0.16.0 to 0.17.0 (#9595)
  • Bump Microsoft.PowerShell.Archive from 1.2.2.0 to 1.2.3.0 in /src/Modules (#9594)
  • Enable building on Kali Linux (#9471)
  • Fix the failed test and update Publish-TestResults to make AzDO fail the task when any tests failed (#9457)
  • Add Preview assets for msix (#9375)
  • Create code coverage and test packages for non-windows (#9373)
  • Fix publishing daily nupkg to MyGet (#9269)
  • Bump PackageManagement from 1.3.1 to 1.3.2 in /src/Modules (#9568)
  • Bump NJsonSchema from 9.13.27 to 9.13.37 (#9524)
  • Bump gulp from 4.0.0 to 4.0.2 in /test/common/markdown (#9443)
  • Bump Newtonsoft.Json from 12.0.1 to 12.0.2 (#9433)
  • Bump System.Net.Http.WinHttpHandler from 4.5.2 to 4.5.3 (#9367)
  • Add AccessToken variable to jobs that perform signing (#9351)
  • Create test package for macOS on release builds (#9344)
  • Add component detection to all jobs (#8964)
  • Move artifacts to artifact staging directory before uploading (#9273)

New in PowerShell 6.2.0 (Mar 29, 2019)

  • Breaking Changes:
  • Fix -NoEnumerate behavior in Write-Output to be consistent with Windows PowerShell (#9069) (Thanks @vexx32!)
  • Engine Updates and Fixes:
  • Add PowerShell remoting enable/disable cmdlet warning messages (#9203)
  • Fix for FormatTable remote deserialization regression (#9116)
  • Update the task-based async APIs added to PowerShell to return a Task object directly (#9079)
  • Add 5 InvokeAsync overloads and StopAsync to the PowerShell type (#8056) (Thanks @KirkMunro!)
  • General Cmdlet Updates and Fixes:
  • Enable SecureString cmdlets for non-Windows by storing the plain text (#9199)
  • Add Obsolete message to Send-MailMessage (#9178)
  • Fix Restart-Computer to work on localhost when WinRM is not present (#9160)
  • Make Start-Job throw terminating error when PowerShell is being hosted (#9128)
  • Update version for PowerShell.Native and hosting tests (#8983)
  • Tools:
  • Adding CmdletsToExport and AliasesToExport to test module manifests. (#9108) (Thanks @powercode!)
  • Comment cleanup in releaseTools.psm1 (#9064) (Thanks @RDIL!)
  • Tests:
  • Fix Enter-PSHostProcess tests flakiness (#9007)
  • Add tests for command globbing (#9180)
  • Add source for Install-package to install netDumbster (#9081) (Thanks @Geweldig!)
  • Fix tab completion test to handle multiple matches (#8891)
  • Refactor macOS and Linux CI so that tests run in parallel (#9056, #9209)
  • Added RequireSudoOnUnix tags to PowerShellGet tests and remove -pending parameter (#8954) (Thanks @RDIL!)
  • Pending NamedPipeConnectionInfo test (#9003) (Thanks @iSazonov!)
  • Add test for -WhatIf for New-FileCatalog (#8966) (Thanks @mjanko5!)
  • Build and Packaging Improvements:
  • Performance improvements for release build (#9179)
  • Add tsaVersion property as TsaV1 for compliance build phase (#9176)
  • Publish global tool packages to pwshtool blob and bug fixes (#9163)
  • Translate Skipped test results into something Azure DevOps does not understand (#9124)
  • Disable Homebrew analytics in macOS VSTS builds (#9130) (Thanks @RDIL!)
  • Remove AppVeyor references from packaging tools (#9117) (Thanks @RDIL!)
  • Fixed Dockerfile syntax highlighting (#8991) (Thanks @RDIL!)
  • Fix dependencies of NuGet build to wait on DEB uploads to finish (#9118)
  • Fix artifact download issue in release build (#9095)
  • Publish test package on release builds (#9063)
  • Bump Microsoft.PowerShell.Native from 6.2.0-rc.1 to 6.2.0 (#9200)
  • Bump NJsonSchema from 9.13.19 to 9.13.27 (#9044, #9136, #9166, #9172, #9184 #9196)
  • Bump PowerShellGet from 2.0.4 to 2.1.1 in /src/Modules (#9110, #9145)
  • Bump SelfSignedCertificate in /test/tools/Modules (#9055)
  • Documentation and Help Content:
  • Update docs for 6.2.0-rc.1 release (#9022)

New in PowerShell 6.2.0 RC 1 (Mar 6, 2019)

  • Breaking Changes:
  • Make Join-String -InputObject 1,2,3 result equal to 1,2,3 | Join-String result (#8611) (Thanks @sethvs!)
  • Engine Updates and Fixes:
  • Improve check for developer mode by checking minimum required build number (#8749)
  • Simplify the declaration of new experimental features (#8726)
  • Remove AMSI uninitialized assert and replace with call to uninitialized (#8713)
  • Port Security bypass fixes from 6.1.3 (#8915)
  • Enable discovering modules that have names same as a culture (e.g. Az) (#8777)
  • Flatten interface hierarchy when generating properties that implement interface properties (#8382) (Thanks @IISResetMe!)
  • Don't use Win32 native APIs on non-Windows for cryptography of secure string over remoting (#8746)
  • Allow .exe files to be used as IL binary modules (#7281)
  • Remove unused cached types (#9015)
  • Experimental Features:
  • Add the experimental feature for creating Temp: drive when FileSystemProvider initializes (#8696)
  • Move CommandNotFoundException suggestion to an experimental feature (#8805)
  • General Cmdlet Updates and Fixes:
  • Correctly Report impact level when SupportsShouldProcess is not set to 'true' (#8209) (Thanks @vexx32!)
  • Fix Request Charset Issues in Web Cmdlets (#8742) (Thanks @markekraus!)
  • Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
  • Add -CustomPipeName to pwsh and Enter-PSHostProcess (#8889)
  • Add configurable maximum depth in ConvertFrom-Json with -Depth (#8199) (Thanks @louistio!)
  • Enable creating relative symbolic links on Windows with New-Item (#8783)
  • Parse numeric strings as numbers again during conversions (#8681) (Thanks @vexx32!)
  • Expose file attributes of OneDrive placeholders (#8745) (Thanks @sba923!)
  • Enable Write-Information to accept $null (#8774)
  • Adding parameter ReplyTo to Send-MailMessage (#8727) (Thanks @replicaJunction!)
  • Fix Get-Help PSTypeName issue with -Parameter when only one parameter is declared (#8754) (Thanks @pougetat!)
  • Code Cleanup:
  • Use HTTPS in URLs where available (#8622) (Thanks @xtqqczze!)
  • Update code to use single method to check if path is UNC (#8680)
  • Fix typo: aganist âžœ against (#8943) (Thanks @lupino3!)
  • Use the OperationCancellationException to replace the StoppingException in ConvertToJson (#8920)
  • Fix style issues in CSV cmdlets (#8894) (Thanks @iSazonov!)
  • Fix LGTM issues (#8843) (Thanks @iSazonov!)
  • Fix length check in PSSnapinQualifiedName.GetInstance() (#8837) (Thanks @hvitved!)
  • Reduce string allocations when formatting file system objects. (#8831) (Thanks @powercode!)
  • Fix many instances of CodeFactor style issue A single-line comment must not be followed by a blank line (#8825) (Thanks @RDIL!)
  • Refactor appveyor.psm1 to ci.psm1 (#8733, #8854, #8709, #8756, #8867) (Thanks @RDIL!)
  • Refactor travis.ps1 into ci.psm1 (#8822, #8888) (Thanks @RDIL!)
  • Fix Markdown lint issues (#8929)
  • Fix code-of-conduct linting (#8896) (Thanks @RDIL!)
  • Tools:
  • Fix broken reference (#8753) (Thanks @RDIL!)
  • Remove GitKracken files from .gitignore (#8743) (Thanks @RDIL!)
  • Update path of testxUnitxUnit.tests.csproj in PowerShell.sln (#8730) (Thanks @markekraus!)
  • Ignore files added by SelfSignedCertificate (#8728) (Thanks @markekraus!)
  • Build Global tool for PowerShell and SDK container (#8984)
  • Add Experimental Features to change log creation (#8827)
  • Remove unneeded Invoke-Expression on unvalidated input (#8826)
  • Update CLA pull request labeling info (#8820) (Thanks @RDIL!)
  • Update some info in md-link-checks (#8757) (Thanks @RDIL!)
  • Tests:
  • Fix Enter-PSHostProcess test to wait until runspace is ready before attempting to enter (#8725)
  • Package validation tests updates (#8714)
  • Make xUnit tests run sequentially to avoid race conditions caused by manipulating powershell.config.json in tests (#8945)
  • Use verbatim string literals for paths (#8937) (Thanks @iSazonov!)
  • Parallelize the Windows CI to enable us to run all tests all the time (#8868)
  • Fixes for Scheduled release build (#8887)
  • Remove references to uninitialized variable (#8849)
  • Remove directory causing static analysis failure (#8812)
  • Update Pester version to 4.4.4 (#8739)
  • Change xUnit Runspace tests to run sequentially (#8796)
  • Fix cleanup config files for the csharp xUnit tests (#8761) (Thanks @iSazonov!)
  • Moved fxdependent-dotnetsdk-latest/Dockerfile (#8738)
  • Build and Packaging Improvements:
  • Make every csproj files have its own folder (#8750)
  • Update packaging script to build reference assembly targeting netcoreapp2.1 and use actual .csproj files (#8729)
  • Generate and deploy reference assembly for Microsoft.PowerShell.Commands.Utility.dll (#8716)
  • Make test file result names unique (#8979)
  • Add variable to control the version of the signing task we use (#8982)
  • Publish test and code coverage artifacts for daily builds (#8955)
  • Integrate building NuGet package in the coordinated build (#8947)
  • Support release branches based on the forward slash separator (#8903)
  • Port DotNet fixes from 6.1.3 (#8914)
  • Start tracking release build information in an azure storage table (#8850)
  • Make license a link in the MSI (#8846)
  • Use -ErrorAction Ignore instead of SilentlyContinue with Get-Command in build.psm1 (#8832)
  • Add binskim to coordinated build and increase timeout (#8834)
  • Fix daily CI builds to publish tar package as artifacts (#8775)
  • Add instrumentation for Start-PSPackage (#8811)
  • Fix passing credential to the SyncGalleryToAzArtifacts.psm1 script (#8808)
  • Move Final artifacts from coordinated build to finalResults folder (#8806)
  • Refactor coordinated release build (#8804)
  • Add compliance to Coordinated build (#8798)
  • Switch to 1.11 of FPM to fix FPM install issue (#8797)
  • Update the coordinated build with framework dependent package for dotnet SDK (#8773)
  • Fix MSI upgrade failure for preview builds (#9013)
  • Build(deps): Bump Microsoft.ApplicationInsights from 2.8.1 to 2.9.1 (#8807,#8848)
  • Build(deps): Bump Microsoft.PowerShell.Native (#8712)
  • Build(deps): Bump NJsonSchema from 9.13.15 to 9.13.19 (#8732, #8747, #8881, #8952)
  • Build(deps): Bump PackageManagement from 1.2.4 to 1.3.1 (#8800)
  • Build(deps): Bump XunitXml.TestLogger from 2.0.0 to 2.1.26 (#8731)
  • Build(deps): Bump Markdig.Signed from 0.15.7 to 0.16.0 (#8981)

New in PowerShell 6.1.3 (Feb 20, 2019)

  • Engine Updates and Fixes:
  • Add security mitigation for 6.1.3 release (Internal 6561)
  • Tools:
  • Change the feed URL to feed name due to changes in Azure DevOps (#8664)
  • Tests:
  • Updating test gallery URL in PackageManagement tests (#7879)
  • Build and Packaging Improvements:
  • Get PowerShellGet tests working (#7831)
  • Start tracking release build information in an azure storage table (#8850)
  • Remove PDBs from fxdependent package (#8006)
  • Make every csproj files have its own folder (#8750)
  • Update packaging script to build reference assembly targeting netcoreapp2.1 and use actual .csproj files (#8729)
  • Move Final artifacts from coordinated build to finalResults folder (#8806)
  • Refactor Unified Release Build (#8804)
  • Add compliance to Coordinated build (#8798)
  • Switch to 1.11 of FPM to fix FPM install issue (#8797)
  • Update the coordinated build with framework dependent package for dotnet SDK (#8773)
  • Add Windows build to coordinated release build YAML (#8695)
  • Build package build using Ubuntu 18.04 image (#8666)
  • Adding yml for Windows Release builds (#8374)
  • Update SignType in signing.xml (#8223)
  • Update DotNet SDK and Runtime version (Internal 7004)
  • Add binskim to coordinated build and increase timeout (#8834)

New in PowerShell 6.2.0 Preview 4 (Jan 29, 2019)

  • Breaking Changes:
  • Add -Stable to Sort-Object and related tests (#7862) (Thanks @KirkMunro!)
  • Improve Start-Sleep cmdlet to accept fractional seconds (#8537) (Thanks @Prototyyppi!)
  • Change hashtable to use OrdinalIgnoreCase to be case-insensitive in all Cultures (#8566)
  • Fix LiteralPath in Import-Csv to bind to Get-ChildItem output (#8277) (Thanks @iSazonov!)
  • Engine Updates and Fixes:
  • Allow user-specified underlying type for enums (#8329) (Thanks @IISResetMe!)
  • Handle case where AppLocker test script fails to delete (#8627)
  • Update CommandNotFound fuzzy suggestion to only return unique results (#8640)
  • Add support to show suggestions on CommandNotFound exception (#8458)
  • Make S.M.A.PowerShell.GetSteppablePipeline method public (#8055) (Thanks @KirkMunro!)
  • Add S.M.A.PowerShell.Create method overload with Runspace argument (#8057) (Thanks @KirkMunro!)
  • Fix mistake on deserialization (#8502)
  • Fix formatting of header of table when center aligned (#8497)
  • Add -RepeatHeader to Format-Table to enable repeating header for each screen full (#8481)
  • Fix Debug-Runspace for Unix platforms and properly enable Windows identity impersonation code (#8451)
  • Reset output attributes if column had ESC char when using Format-Table; Replace ... with unicode ellipsis (#8326)
  • Experimental Features:
  • Add the experimental feature PSUseAbbreviationExpansion to support tab completion on abbreviated command names (#8109)
  • General Cmdlet Updates and Fixes:
  • Fix code page parsing issue in Invoke-RestMethod (#8694) (Thanks @markekraus!)
  • Fix Expect 100-continue issue with Web Cmdlets (#8679) (Thanks @markekraus!)
  • Allow 'name' as an alias key for 'label' in ConvertTo-Html, allow the 'width' entry to be an integer (#8426) (Thanks @mklement0!)
  • Resolve :PAGER if its path contains spaces (#8571) (Thanks @pougetat!)
  • Add support enum and char types in Format-Hex cmdlet (#8191) (Thanks @iSazonov!)
  • Change Get-Help cmdlet -Parameter parameter so it accepts string arrays (#8454) (Thanks @sethvs!)
  • Fix FixupFileName to not load resolved assembly during module discovery (#8634)
  • Change Clear-Host back to using $RAWUI and clear to work over remoting (#8609)
  • Fix LiteralPath in Import-Csv to bind to Get-ChildItem output (#8277) (Thanks @iSazonov!)
  • Make scriptblock based calculated properties work again in ConvertTo-Html (#8427) (Thanks @mklement0!)
  • Fix Join-String cmdlet FormatString parameter logic (#8449) (Thanks @sethvs!)
  • Allow Windows users in developer mode to create symlinks without elevation (#8534)
  • Help function should only pass content to pager if content was found (#8528)
  • Change Clear-Host to simply called [console]::clear and remove clear alias from Unix (#8603)
  • help function shouldn't use pager for AliasHelpInfo (#8552)
  • Fix XML nesting bug in CustomSerializer.WriteMemberInfoCollection() (#8476) (Thanks @IISResetMe!)
  • Add -UseMinimalHeader to Start-Transcript to minimize transcript header (#8402) (Thanks @lukexjeremy!)
  • Code Cleanup:
  • Remove the no longer used RunspaceConfigurationEntry types (#8424)
  • Remove unneeded catch/throw from mkdir and oss functions (#8425)
  • Remove comments after closing brackets (#8344) (Thanks @Meir017!)
  • Cleanup Format-Hex (#8683) (Thanks @vexx32!)
  • Delete appveyor.yml (#8639) (Thanks @RDIL!)
  • Revise use of Start-Sleep cmdlet (#8633) (Thanks @xtqqczze!)
  • Style: Change first char to upper in summary comments (#8597) (Thanks @iSazonov!)
  • Style: Use the type aliases char and bool instead of Char and Boolean (#8572) (Thanks @iSazonov!)
  • Style: Use the type alias string instead of String in places that are appropriate (#8573) (Thanks @iSazonov!)
  • Correctly capitalize the ForEach operator in *.ps1 (#8583) (Thanks @xtqqczze!)
  • Remove unnecessary trim of passed-in command line in interactive debugging (#8594)
  • Style: Add a space after "//" in comments and remove unneeded comments after "}" (#8576) (Thanks @iSazonov!)
  • Style: Add the ending period to the XML document texts (#8577) (Thanks @iSazonov!)
  • Avoid use of mkdir alias in *.ps1 and *.psm1 (#8582) (Thanks @xtqqczze!)
  • Regularize redirection operator spacing in *.ps1 and *.psm1 (#8581) (Thanks @xtqqczze!)
  • Style: Change 'String.' to 'string.' (#8568) (Thanks @iSazonov!)
  • Style: Replace String.IsNullOrEmpty with string.IsNullOrEmpty (#8557) (Thanks @iSazonov!)
  • Fix typo in AMSI test (#8561) (Thanks @iSazonov!)
  • Style: Convert to upper first char in <param> and <exception> doc tags (#8556) (Thanks @iSazonov!)
  • Style: Add period before </param> and </exception> doc tags (#8553) (Thanks @iSazonov!)
  • Remove use of cmdlet aliases from .testpowershell (#8546) (Thanks @xtqqczze!)
  • Style: Remove extra spaces after <para> and before </para> docs tags (#8547) (Thanks @iSazonov!)
  • Style: Remove preceding spaces from C# preprocessor-type keywords (#8540) (Thanks @xtqqczze!)
  • Style: remove <remarks> </remarks> (#8538) (Thanks @iSazonov!)
  • Style: Add period before returns doc tag (#8535) (Thanks @iSazonov!)
  • Style: Change Object[] to object[] (#8526) (Thanks @iSazonov!)
  • Style: Change Object to object (#8522) (Thanks @iSazonov!)
  • Style: Change UInt64? to ulong? (#8527) (Thanks @iSazonov!)
  • Style: Change Byte{} to byte[] (#8525) (Thanks @iSazonov!)
  • Code cleanup: Add space after closing brace where needed (#8530)
  • Style: Change System.Boolean to bool (#8521) (Thanks @iSazonov!)
  • Change String to string for simple references (#8519)
  • Change Int32 to int for simple references in variable declaration (#8518)
  • Style: Member access symbols should be followed with member name (#8517)
  • Style: Remove extra space before colon in named parameters (#8504)
  • Style: Use the shorthand of the nullable type (#8501)
  • Remove empty lines; correct space on closing square brackets, negative signs, and generic brackets (#8508)
  • Remove space after new keyword in implicitly typed array allocation (#8505)
  • The static keyword should be right after access modifier (#8506)
  • Remove comments after closing bracket (#8503)
  • Remove space character after '!' (#8507)
  • Style: Remove extra space before colon in named parameters (#8504)
  • Tools:
  • Recommend Azure DevOps extension inside VS-Code for better YAML editing. (#8403) (Thanks @bergmeister!)
  • AddToPath re-implementation in install-powershell.ps1 (#8081) (Thanks @glachancecmaisonneuve!)
  • Change the feed URL to feed name due to changes in AzDevOps (#8664)
  • Batch merge builds together while a merge build is running (#8668)
  • Fix grammar in stale bot message (#8660) (Thanks @RDIL!)
  • Add macOS files to .gitignore (#8456) (Thanks @RDIL!)
  • Name the spelling yaml something more appropriate (#8601) (Thanks @RDIL!)
  • Add script to create icns files. (#7456) (Thanks @thezim!)
  • Pass nugetkey as parameter (#8461)
  • Add gitkracken files to gitignore (#8434) (Thanks @RDIL!)
  • Create release process issue template (#8417)
  • Support for linuxmint in installpsh-debian.sh (#8440) (Thanks @DarwinJS!)
  • Enable install-powershell.ps1 to use MSI (#8418)
  • Tests:
  • Remove broken HelpUri from CimTest (#8688) (Thanks @xtqqczze!)
  • Remove appveyor environment checks (#8669) (Thanks @RDIL!)
  • Adding tests for PSDiagnostics Module (#8431) (Thanks @kvprasoon!)
  • Increase diagnose-ability of Link Checker failures (#8667)
  • Fix broken urls (#8653)
  • Update fuzzy test to fix daily build (#8629)
  • Create link check task (#8471) (Thanks @RDIL!)
  • Add Tests for ConfirmImpact Ratings (#8214) (Thanks @vexx32!)
  • Fix style issues in xUnit tests (#8465) (Thanks @iSazonov!)
  • Move xUnit tests in new folder (#8356) (Thanks @iSazonov!)
  • Fix environment variable test and add missing null check in CommandHelpProvider (#8408)
  • Remove dotnet dependency to start WebListener (#8390)
  • Build and Packaging Improvements:
  • Update Third Party Notices (#8415)
  • Adding yaml for Windows Release builds (#8374)
  • Bump NJsonSchema from 9.13.1 to 9.13.2 (#8422)
  • Do not ship fullclr binaries of PackageManagement (#8700) (Thanks @bergmeister!)
  • Fix the build for fxdependent build for dotnet sdk (#8670)
  • Add Windows build to universal release build YAML (#8695)
  • Remove Debian 8 references as it is EOL (#8678)
  • Build(deps): Bump NJsonSchema from 9.13.14 to 9.13.15 (#8671)
  • Build package build using ubuntu 18.04 image (#8666)
  • Fix a typo in packaging.psm1 (#8647) (Thanks @sethvs!)
  • Add function to create a framework dependent package dotnet-sdk containers (#8644)
  • Build(deps): Bump NJsonSchema from 9.13.13 to 9.13.14 (#8648)
  • Build(deps): Bump PowerShellGet from 2.0.3 to 2.0.4 (#8649)
  • Fix installing fpm and ronn in macOS CI by avoid installing docs for them (#8656)
  • Build(deps): Bump Markdig.Signed from 0.15.6 to 0.15.7 (#8637)
  • Build(deps): Bump System.Security.Cryptography.Pkcs from 4.5.1 to 4.5.2 (#8614)
  • Build(deps): Bump System.Net.Http.WinHttpHandler from 4.5.1 to 4.5.2 (#8615)
  • Build(deps): Bump NJsonSchema from 9.13.11 to 9.13.13 (#8616)
  • Build(deps): Bump System.Text.Encoding.CodePages from 4.5.0 to 4.5.1 (#8613)
  • Enable install of Preview MSI release side-by-side with Stable release (#8513)
  • Get macOS to publish daily build to nugetfeed (#8464)
  • Build(deps): Bump Markdig.Signed from 0.15.5 to 0.15.6 (#8558)
  • Build(deps): Bump NJsonSchema from 9.13.10 to 9.13.11 (#8569)
  • Remove duplicate Open Here context menu item upgrading to newer Preview release (#8496)
  • Bump NJsonSchema from 9.13.9 to 9.13.10 (#8511)
  • Bump NJsonSchema from 9.13.7 to 9.13.9 (#8498)
  • Bump NJsonSchema from 9.13.4 to 9.13.7 (#8493)
  • Bump NJsonSchema from 9.13.3 to 9.13.4 (#8462)
  • Fix daily NuGet publishing (#8460)
  • Bump NJsonSchema from 9.13.2 to 9.13.3 (#8457)
  • Bump Markdig.Signed from 0.15.4 to 0.15.5 (#8444)
  • Documentation and Help Content:
  • Remove unused AppVeyor links from README.md (#8685) (Thanks @RDIL!)
  • Update README.md (#8684)
  • Update Package Management license to MIT (#8676) (Thanks @RDIL!)
  • Create Support File (#8618) (Thanks @RDIL!)
  • Update git clone URL (#8673) (Thanks @RDIL!)
  • docs(contributing): add link check information (#8659) (Thanks @RDIL!)
  • Update License and Third Party Notice (#8646)
  • Update README, metadata.json and changelog for release 6.1.2 (#8658)
  • Fix typo in README.md (#8642) (Thanks @MarkTiedemann!)
  • Fix some typos in the README (#8623) (Thanks @RDIL!)
  • Remove en-us from docs.microsoft.com URL (#8628) (Thanks @xtqqczze!)
  • Update examples for hosting PSCore and remove old outdated examples (#8472) (Thanks @bergmeister!)
  • Update the pull request template (#8624) (Thanks @RDIL!)
  • Contributing guidelines: Remove references to Travis CI and AppVeyor (#8617) (Thanks @RDIL!)
  • Update code coverage analysis document (#8543) (Thanks @xtqqczze!)
  • Remove en-us from our doc links (#8602)
  • Document First-time-issue and Hackathon/Hacktoberfest labels (#8575)
  • Updated linux build link (#8579) (Thanks @jwmoss!)
  • Update contributing guidelines doc to run spellchecking in English (#8473) (Thanks @RDIL!)
  • Updating links to point to new VS Code docs (#8468)

New in PowerShell 6.1.2 (Jan 16, 2019)

  • Tests:
  • Fix test failures (Internal 6310)
  • Build and Packaging Improvements:
  • Moved the cleanup logic to Restore-PSModuleToBuild (Internal 6442)
  • Update dependency versions (Internal 6421)
  • Create unified release build for macOS and Linux packages (#8399)
  • Build Alpine tar.gz package in release builds (Internal 6027)

New in PowerShell 6.2.0 Preview 3 (Dec 11, 2018)

  • Breaking Changes:
  • Get-ExperimentalFeature no longer has -ListAvailable switch (#8318)
  • Debug parameter now sets DebugPreference to Continue instead of Inquire (#8195) (Thanks @KirkMunro!)
  • Engine Updates and Fixes:
  • Improve PowerShell startup time by 24% (#8341) (#8396)
  • Remove extra newlines from formatting which resulted in unnecessary double newlines (#8247)
  • Add Enable-ExperimentalFeature and Disable-ExperimentalFeature cmdlets (#8318)
  • Fix Export-ModuleMember bug for a ScriptBlock having no context (#8363)
  • Fix race condition to access powershell.config.json (#8249) (Thanks @iSazonov!)
  • Add SkipCA and SkipCN check requirement to WinRM/OMI HTTPS connection (#8279)
  • Add fix for Start-Job initialization script which should not be executed as trusted in system lockdown (#8284)
  • General Cmdlet Updates and Fixes:
  • Add Enable-ExperimentalFeature and Disable-ExperimentalFeature cmdlets (#8318)
  • Add cmdlet Join-String for creating text from pipeline input (#7660) (Thanks @powercode!)
  • Expose all cmdlets from PSDiagnostics if logman.exe is available (#8366)
  • Fix Get-Help for advanced functions with MAML help content (#8353)
  • Conditionally mark getter/setter implementations as virtual in generated classes (#8303) (Thanks @IISResetMe!)
  • Fix for PSDrive creation with a UNC path with a trailing backslash or forward slash when combined with -Persist (#8305) (Thanks @kvprasoon!)
  • Remove Persist parameter from New-PSDrive on non-Windows platform (#8291) (Thanks @lukexjeremy!)
  • Test-Path: Return $false when given an empty or $null -Path/-LiteralPath value (#8080) (Thanks @vexx32!)
  • Token calculation fix for Get-Help executed on ScriptBlock for comment help. (#8238) (Thanks @hubuk!)
  • Support Get-PSHostProcessInfo and Enter-PSHostProcess on Unix platforms (#8232)
  • Code Cleanup:
  • Update resgen, typegen to use .Net Core 2.1 (#8369) (Thanks @bergmeister!)
  • Change Newtonsoft deserializing bug comment to link to the new issue (#8377) (Thanks @louistio!)
  • Cleanup #if !CORECLR code (#8337) (Thanks @iSazonov!)
  • Cleanup UpdatableHelpSystem and enable XSD validation on MAML help content (#8335) (Thanks @iSazonov!)
  • Remove old customPSSnapInType parameter from PSSnapInInfo() (#8333) (Thanks @iSazonov!)
  • Cleanup #if CORECLR from some files (#8332) (Thanks @iSazonov!)
  • Cleanup AssemblyInfo (#8190) (Thanks @iSazonov!)
  • Fix GetLocationCommand output type parameter set and style issues (#8324) (Thanks @Meir017!)
  • Tools:
  • Remove dependabot attribution and generate changelog sections using CL-* labels (#8386)
  • Tests:
  • Update folder path for storing optimization profile and add test to validate loaded assemblies and libraries on startup (#8406)
  • Fix an intermittent failure in macOS logging tests (#8385)
  • Created a csproj to pin test modules and updated build.psm1 accordingly (#8350)
  • Update help content for TabCompletion tests only if it does not exist (#8355)
  • Skip Enter-PSHostProcess tests on AppVeyor due to PSReadline issue (#8317)
  • Build and Packaging Improvements:
  • Remove AmazonLinux Dockerfile (#8271) (Thanks @kiazhi!)
  • Make install-powershell.sh auto-detect if it should use wget or curl (#8225) (Thanks @DarwinJS!)
  • Bump NJsonSchema from 9.12.2 to 9.13.1 (#8319) (#8328) (#8412) (#8371) (#8384)
  • Bump Microsoft.PowerShell.Native from 6.2.0-preview.2 to 6.2.0-preview.3 (#8411)
  • Update the name of the artifact to be unique per artifact (#8405)
  • Create unified release build for macOS and Linux packages (#8399)
  • Add Linux ARM64 build support (#8016) (Thanks @slide!)
  • Update the timeout of CI builds (#8398)
  • Bump PackageManagement from 1.2.2 to 1.2.4 in /src/Modules (#8320) (#8383)
  • Bump Newtonsoft.Json from 11.0.2 to 12.0.1 (#8348)
  • Enable pipeline to sync PSGallery modules to AzArtifacts feed (#8316)
  • Build Alpine tar.gz package in release builds (#8340)
  • Publish test package to AppVeyor daily build (#8273)
  • Bump Microsoft.CodeAnalysis.CSharp from 2.9.0 to 2.10.0 (#8294)
  • Bump PowerShellGet from 2.0.1 to 2.0.3 in /src/Modules (#8321)
  • Enable Open Here context menu on Windows to work with root of a drive (#8287)
  • Bump System.Data.SqlClient from 4.5.1 to 4.6.0 (#8266)
  • Documentation and Help Content:
  • Merge changelogs from 6.1.1 and 6.0.5 into master (#8283)
  • Remove all reference to AppVeyor and Travis CI from docs (#8376)
  • Change default issue template to use different categories (#8203)
  • SHA256 Hashes of the release artifacts:
  • powershell-6.2.0-preview.3-linux-alpine-x64.tar.gz
  • 85FE679E7D75A962122C6C90C60849D5C0FCEFFADC5DC94168A6EBAD8F9FDD70
  • powershell-6.2.0-preview.3-linux-arm32.tar.gz
  • 48410A55DA71830587D00A87AF0085702517BA20E8CE3664AD39BBEA214D833A
  • powershell-6.2.0-preview.3-linux-arm64.tar.gz
  • E72AC14C7397F2303400B46680B649A63202C275C189DF771DB7365E9F0ABDA4
  • powershell-6.2.0-preview.3-linux-x64-fxdependent.tar.gz
  • 02EFB20065686FE21E5C08A49031471F302C9800E8B14F3BB9D71EB870ADE0BB
  • powershell-6.2.0-preview.3-linux-x64.tar.gz
  • 61FD087656A53ED079527E8D6AECD6E193F549A073C8CFE7C907A1E5B36585B5
  • powershell-6.2.0-preview.3-osx-x64.pkg
  • 5847CB3ABFDE84265F8A5571B236A05448324923E984D9AE650817571B146412
  • powershell-6.2.0-preview.3-osx-x64.tar.gz
  • 1C6FEE6CE308A8B99FEBFE1687EE254643B3F8F9114CD96F41D66222E2CEC441
  • PowerShell-6.2.0-preview.3-win-arm32.zip
  • 5054CA2C6D5729C3E1953B1432173A3CA19E5845516D241DECC54DA296B8A325
  • PowerShell-6.2.0-preview.3-win-arm64.zip
  • E4E5DA495978BD52C9984E1467E168E9344C9252B2707508E0910251FE8EA9A2
  • PowerShell-6.2.0-preview.3-win-fxdependent.zip
  • 9C1EF87252A65205749084A1F0DECB5A8A3260F2BF8048234E8403248AD2B602
  • PowerShell-6.2.0-preview.3-win-x64.msi
  • 9C901FA9593B2033C14268B4037A7930956B0C7B4E7A022380F4E7C68ACD09B9
  • PowerShell-6.2.0-preview.3-win-x64.zip
  • 5871B5E83192FA2A0C560C3D24AAAE645A99D7CDF5F364B0B8CD3072E673A458
  • PowerShell-6.2.0-preview.3-win-x86.msi
  • 7A8B4D1CE93348C3AE9B11A5391BC38A92E1F3DC7AC07670146BB8391ABE9C51
  • PowerShell-6.2.0-preview.3-win-x86.zip
  • 0835D123BE70009D6642FEFCA32CDBEF4DF76B066A0097321707157E4828B469
  • powershell-preview-6.2.0_preview.3-1.rhel.7.x86_64.rpm
  • 10C6C4926736BC30B99730BEEA071F305A419CEF1EA53DCA1DD419E55140C111
  • powershell-preview_6.2.0-preview.3-1.debian.8_amd64.deb
  • 76461C5C467E45B562374DBAE6B733641C9959928FF06A266363C2C24FDEC88B
  • powershell-preview_6.2.0-preview.3-1.debian.9_amd64.deb
  • 5CCF40D66FCA60DC33E70C21AD18643A64F2929561FE4747C6407E1B2384F5AF
  • powershell-preview_6.2.0-preview.3-1.ubuntu.14.04_amd64.deb
  • 811B9EBAC824EAF66BBD25971DE702573A166FC3850FAB4953251FE943EACF02
  • powershell-preview_6.2.0-preview.3-1.ubuntu.16.04_amd64.deb
  • DE4C615AD637326FF9B828A41BD1F73018312794C120E4FF5B5567FEA5B53869
  • powershell-preview_6.2.0-preview.3-1.ubuntu.18.04_amd64.deb
  • 2C0E383A11B351999FBB45F4163A6B88DFEC770A3BAD2526479A1384A020426B

New in PowerShell 6.2.0 Preview 2 (Nov 16, 2018)

  • Breaking Changes:
  • Honor -OutputFormat if specified in non-interactive, redirected, encoded command used with pwsh (#8115)
  • Load assembly from module base path before trying to load from the GAC (#8073)
  • Remove tilde from Linux preview packages (#8244)
  • Move processing of -WorkingDirectory before processing of profiles (#8079)
  • Known Issues:
  • PowerShell WSMan remoting does not work on Debian 9 due to missing symbolic links.
  • For more information and a workaround see issue #7598
  • Engine Updates and Fixes:
  • Enable case-insensitive tab completion for files and folders on case-sensitive filesystem (#8128)
  • Experimental feature: Implicit remoting batching performance improvements (#8038)
  • Add a path for checking ZoneInformation without throwing an exception (#8025) (Thanks @powercode!)
  • Fix CVE-2018-8256,
  • issues with expanding ZIP files with relative paths (#8252)
  • Fix CVE-2018-8415,
  • issue logging when the scriptblock has a null character (#8253)
  • Make PSVersionInfo.PSVersion and PSVersionInfo.PSEdition public (#8054) (Thanks @KirkMunro!)
  • Enable distinct ModuleAnalysisCache files for each installation of pwsh (#8174)
  • Consolidation of all Windows PowerShell work ported to PowerShell Core (#8257)
  • Fix incorrect name check when auto-loading required modules (#8218)
  • Adding verbose output for experimental implicit remoting batching feature (#8166)
  • Add Type Inference for $_ / $PSItem in catch{ } blocks (#8020) (Thanks @vexx32!)
  • Fix static method invocation type inference (#8018) (Thanks @SeeminglyScience!)
  • General Cmdlet Updates and Fixes:
  • Reduce allocations in Get-Content cmdlet (#8103) (Thanks @iSazonov!)
  • Enable Set-Location -LiteralPath to work with folders named - and + (#8089)
  • Enable Add-Content to share read access with other tools while writing content (#8091)
  • Add new Offset and Count parameters to Format-Hex and refactor the cmdlet (#7877) (Thanks @iSazonov!)
  • Add -Name, -NoUserOverrides and -ListAvailable parameters to Get-Culture cmdlet (#7702) (Thanks @iSazonov!)
  • Allow dynamic parameter to be returned even if path does not match any provider (#7957)
  • Style fixes in Format-Hex (#8083) (Thanks @iSazonov!)
  • Fix logic to rely on PowerShell major and minor version instead of build number to determine whether to output formatdata (#8063)
  • Fix Rename-Item -Path with wildcard char (#7398) (Thanks @kwkam!)
  • When using Start-Transcript and file exists, empty file rather than deleting (#8131) (Thanks @paalbra!)
  • Error message enhancement for Clear-Content cmdlet when targeting a directory (#8134) (Thanks @kvprasoon!)
  • Make Select-String faster by not doing extra work (#7673) (Thanks @powercode!)
  • Remove ShouldProcess from Format-Hex (#8178)
  • Code Cleanup:
  • Remove clone of command-line arguments array (#7910) (Thanks @iSazonov!)
  • Use DefaultPathSeparator char instead of DefaultPathSeparatorString (#8082) (Thanks @iSazonov!)
  • Replace StringComparision.CurrentCulture with StringComparision.Ordinal (#8068) (Thanks @iSazonov!)
  • Fix typo in -icontains description from incase sensitive to case insensitive (#7840) (Thanks @StingyJack!)
  • Refactor module version/GUID comparison logic (#7125)
  • Tools:
  • Update installpsh-amazonlinux.sh for container specific issues (#7907) (Thanks @DarwinJS!)
  • Update the codeowners file (#8017)
  • Tests:
  • Filter the TestPackage artifact upload by name to avoid other ZIP files being uploaded (#8116)
  • Adding fxdependent PowerShell package tests (#7830)
  • Fix Windows Feature tests running in Azure DevOps (#8220)
  • Create $PROFILE if it does not exist for -WorkingDirectory processing test (#8152)
  • Add test coverage for additional Get-Module parameters (#8137) (Thanks @KevinMarquette!)
  • Fix conflict with Get-AdlStoreChildItem from az module in tab completion tests (#8167)
  • Fix static secret in code (#8186)
  • Build and Packaging Improvements:
  • Bump xunit.runner.visualstudio from 2.4.0 to 2.4.1 (#8139)
  • Bump xunit from 2.4.0 to 2.4.1 (#8140)
  • Bump Microsoft.ApplicationInsights from 2.8.0 to 2.8.1 (#8104)
  • Bump NJsonSchema from 9.11.1 to 9.12.1 (#8183, #8248)
  • Fix Start-PSBuild -Output (#7504) (Thanks @kwkam!)
  • Adding YML for Linux builds (#8168)
  • Publish test package at AGENT_WORKFOLDER if TEMP is not available (#8108)
  • Fix psmodulerestore path when built in Visual Studio Code (#8075)
  • Use approved verb instead of Generate-CrossGenAssembly (#8151) (Thanks @kvprasoon!)
  • Add path filters to CI YAML (#8222)
  • Update SignType in signing.xml (#8223)
  • Update metadata for 6.0.5 and 6.1.1 releases (#8259)
  • Port changes to allow Azure DevOps NuGet feeds for Mac build (Internal 5818)
  • Update version for dependencies (Internal 5822)
  • Add code to use private NuGet feeds when running in internal CI system (#8187)
  • Add title to Open Here window for MSI installer (#8164)
  • Remove build and documentation references to git submodules (#8177) (Thanks @andschwa!)
  • Add function to create a new nuget.config file (#8170)
  • Update macOS release build to create the nuget.config (#8185)
  • Workaround for accessing Azure Artifacts (#8188)
  • Fix script path for PowerShellPackageVsts.ps1 (#8189)
  • Microsoft.PowerShell.Native now has MUSL binaries for Alpine.
  • Documentation and Help Content:
  • Fix grammar in README.md (#8059) (Thanks @daviddreher2!)
  • Update powershell-beginners-guide.md to add alias for Clear-Host (#7912) (Thanks @aavdberg!)
  • Add Microsoft Docs link to FAQ (#8133) (Thanks @vongrippen!)
  • Added updated photo of Visual Studio Code due to new version of Code (#8084) (Thanks @lassehastrup!)
  • Update license.rtf to only have major version (#8127)
  • Updated Pester Syntax in Writing Tests Guide (#8039) (Thanks @markwragg!)
  • Remove duplicate parts from license file (#8143) (Thanks @azkarmoulana!)
  • Fix spellings in CHANGELOG.md (#8062)
  • Update license RTF to 6.2 (#8065)
  • Combine notes about ITuple changes in Change Log (#8077) (Thanks @Jocapear!)
  • Correct typos in powershell-beginners-guide.md (#8088) (Thanks @nycjan!)
  • Added Learn Windows PowerShell in a Month of Lunches as recommended reading (#8067) (Thanks @tobvil!)
  • Update README.md for v6.1.1 (#8255)
  • Fix some typos (#8206) (Thanks @jeis2497052!)
  • Promote HTTPS (#8160) (Thanks @RDIL!)
  • Simple grammatical correction in README.md file (#7978) (Thanks @iGotenz!)
  • Update URLs to use HTTPS instead of HTTP in the documentation (#8165) (Thanks @RDIL!)
  • Remove #7633 from v6.2.0-preview.1 CHANGELOG.md updates. (#8101) (Thanks @stknohg!)

New in PowerShell 6.1.1 (Nov 14, 2018)

  • Engine Updates and Fixes:
  • Fix issue with logging the null character in ScriptBlock logging (Internal 5607)
  • Consolidation of all Windows PowerShell work ported to 6.1 (Internal 5233)
  • General Cmdlet Updates and Fixes:
  • Use ZipFile and ExtractToDirectory APIs to extract zip file (Internal 5608)
  • Build and Packaging Improvements:
  • Update the Archive module version (Internal 5671)
  • Update to .NET Core 2.1.5 with SDK 2.1.403 (#7936) (Thanks @iSazonov!)
  • Disable package major upgrade tests for release branch (Internal 5209)
  • Bump versions for dependencies (Internal 5612)
  • Port changes to allow AzDevOps NuGet feeds for macOS build (Internal 5716)
  • Port macOS changes from GitHub (#8189, #8188, #8185)
  • Add function to create a new nuget.config file (#8170)
  • Updated wxs file to match published packages (Internal 5660)
  • Tests:
  • Change API to match cmdlet which is more reliable in AzDevOps Pipelines Windows (#8003)
  • Fix conflict with Get-AdlStoreChildItem from az module in tab completion tests (#8167)

New in PowerShell 6.2.0 Preview 1 (Oct 18, 2018)

  • Breaking Changes:
  • Do not add PATHEXT environment variable on Unix (#7697) (Thanks @iSazonov!)
  • Known Issues:
  • Remoting on Windows IOT ARM platforms has an issue loading modules. See #8053
  • Engine Updates and Fixes:
  • Add C# style type accelerators and suffixes for ushort, uint, ulong, and short literals (#7813) (Thanks @vexx32!)
  • Create inferred types for Select-Object, Group-Object, PSObject and Hashtable (#7231) (Thanks @powercode!)
  • Fix .NET adapter to be able to get members from System.IntPtr (#7808)
  • Fix .NET adapter to not throw when fails to create a PSMethod due to ByRef-like type (#7788)
  • Support calling method with ByRef-like type parameters (#7721)
  • Fix perf issue in provider by using Refresh() to update the status rather than instantiating ServiceController which has a significant perf degradation from .NET Framework (#7680)
  • Update PowerShell to handle the case where the Windows PowerShell module path is already in the environment's PSModulePath (#7727)
  • Ensure the SSHClientSessionTransportManager stream writer and reader fields are cleared after dispose. (#7746)
  • Add unified attribute for completion for Encoding parameter. (#7732) (Thanks @ThreeFive-O!)
  • Add support for Byte Literals (#7901) (Thanks @vexx32!)
  • Fix Property and ScriptBlock expressions in EntrySelectedBy tags within custom controls (#7913) (Thanks @SeeminglyScience!)
  • Fix BeginInvoke/EndInvoke to return results when Stop or BeginStop/EndStop was called previously (#7917)
  • Allow root node of format.ps1xml to have attributes that are ignored (#7987)
  • Use non-virtual call to invoke 'family or assembly' methods on base class from PowerShell class (#7622) (#7624) (Thanks @yurko7!)
  • Enable indexing operations on System.Tuple and System.ValueTuple (#7633) (Thanks @SeeminglyScience!)
  • Enable indexing operations on objects that implement ITuple (#7633) (Thanks @SeeminglyScience!)
  • Make the parameter to ImportPSModule use params so that it is easier to call (#7933) (Thanks @iSazonov!)
  • General Cmdlet Updates and Fixes:
  • Add EscapeHandling parameter in ConvertTo-Json cmdlet (#7775) (Thanks @iSazonov!)
  • Make Add-Type open source files with FileAccess.Read and FileShare.Read explicitly (#7915) (Thanks @IISResetMe!)
  • No longer skips a column without name if double quote delimiter is used in Import-Csv (#7899) (Thanks @Topping!)
  • Add support for cd + (#7206) (Thanks @bergmeister!)
  • Allow numeric Ids and name of registered code pages in -Encoding parameters (#7636) (Thanks @iSazonov!)
  • Remove extra space in LastWriteTime format (#7810) (Thanks @iSazonov!)
  • Fix Enter-PSSession -ContainerId for the latest Windows (#7883)
  • Get/Add-Content throws improved error when targeting a container (#7823) (Thanks @kvprasoon!)
  • Ensure NestedModules property gets populated by Test-ModuleManifest (#7859)
  • Add %F case to Get-Date -UFormat (#7630) (Thanks @britishben!)
  • Fix file blocking issue with web cmdlets (#7676) (Thanks @Claustn!)
  • Improve error message on non-Windows when importing clixml with securestring (#7997)
  • Add prompt to the use of less in the function 'help' to instruct user how to quit (#7998)
  • Fix Set-Service -Status Stopped to stop services with dependencies (#5525) (Thanks @zhenggu!)
  • Code Cleanup:
  • Use nameof() in bound parameters.contains key() (#7908) (Thanks @iSazonov!)
  • Cleanup all native code from repository (#7892)
  • Add XSDs for Format and Types.ps1xml files (#7832) (Thanks @felixfbecker!)
  • Remove unused commented out code (#7935) (Thanks @vpondala!)
  • Add .editorconfig (#7357) (Thanks @iSazonov!)
  • Remove unused stopwatch (#7878)
  • Clean up MshObject.cs and MshMemberInfo.cs (#7446)
  • Add TimeToLive and Hops aliases to MaxHops parameter of Test-Connection cmdlet. (#7850) (Thanks @sethvs!)
  • Fix a typo in Credential.cs (#7696) (Thanks @sethvs!)
  • Remove workaround on VSTS that is no longer needed (#7666)
  • Improve code style of Send-MailMessage cmdlet (#7723) (Thanks @ThreeFive-O!)
  • Cleanup FileSystemProvider from runtime checks (#7655) (Thanks @iSazonov!)
  • Remove extra spaces in error messages in Modules.resx (#7662) (Thanks @sethvs!)
  • Remove empty XML comment lines (missed in #7401) (#7641) (Thanks @kvprasoon!)
  • Remove Suspend-Job and Resume-Job cmdlets from compilation (#7650)
  • Tools:
  • Fix syntax error in installpwsh-amazonlinux.sh (#7905) (Thanks @DarwinJS!)
  • Add tools for PowerShell perf analysis (#7595) (Thanks @lzybkr!)
  • Started using Dependabot to create PRs to update package and module versions
  • Tests:
  • Add test for $error[0] tab completion (#7924) (Thanks @iSazonov!)
  • Replace test certificates with self-signed certificate generating command (#7875)
  • Standardize Pester syntax in ReplaceOperator.Tests.ps1 (#7963) (Thanks @sethvs!)
  • Updating ModulePath.Tests for fxdependent package (#7772)
  • Add tests for Import-Module -Force (#7491)
  • Updates to Docker package tests (#7667)
  • Updating test gallery URL in PackageManagement tests (#7879)
  • Add version checking tests for Import-Module (#7499)
  • Update Markdown tests (#7838)
  • Change locale of mdspell to en-US (#7671)
  • Test changes needed for running in a container (#7869)
  • Add daily build non-windows platforms (#7683)
  • Remove workaround on VSTS that is no longer needed (#7666)
  • Fix module specification hashtable in ModuleSpecification.Tests.ps1 (#7663) (Thanks @sethvs!)
  • Use dotnet test since the dotnet xunit test runner has been deprecated (#7980) (Thanks @bergmeister!)
  • Fix pipeline test where SmtpServer key was set wrong in pipeline object (#7745) (Thanks @ThreeFive-O!)
  • Change API to get host name to match cmdlet which is more reliable in Azure DevOps Pipelines Hosted Windows VS2017 (#8003)
  • Disable travis-ci (#7766)
  • Make artifact upload only occur for non-PR builds (#7657)
  • Change logic for downloading zip files based on job id (#7653)
  • Add missing dependency for hosting xUnit tests
  • Build and Packaging Improvements:
  • Change default of Start-PSBuild to include -PSModuleRestore (#7881)
  • Specify verb, pwsh, for shell context menu to avoid overriding the default verb (#7932) (Thanks @bergmeister!)
  • Converting aliases to cmdlets in build.psm1 (#7964) (Thanks @kvprasoon!)
  • Add dependencies for SUSE (#7938) (Thanks @Jellyfrog!)
  • Wait for package manager not to be locked (#7817)
  • Make Start-PSPackage give better message about how to fix files.wxs (#7841)
  • Bump to .NET Core 2.1.5 with SDK 2.1.403 and latest packages (#7646, #7834, #7922, #7936) (Thanks @iSazonov!)
  • Bump Markdig.Signed NuGet package from 0.15.3 to 0.15.4 (#7960) (Thanks @bergmeister!)
  • Bump Microsoft.ApplicationInsights from 2.7.2 to 2.8.0 (#8002)
  • Bump Microsoft.PowerShell.Native from 6.1.0-rc.1 to 6.1.0 (#7861)
  • Bump NJsonSchema from 9.10.71 to 9.11.1 (#7705, #7764, #7990)
  • Bump PackageManagement from 1.1.7.2 to 1.2.2 in /src/Modules (#8014, #8029)
  • Bump Pester to use latest version (#8015)
  • Bump PowerShellGet to 2.0.0 (#7831)
  • Bump PSReadLine to 2.0.0-beta3 (#7711)
  • Bump Xunit.SkippableFact from 1.3.6 to 1.3.12 (#7972)
  • Make Windows MSI uninstallation shortcut remove work when more than one version is installed (#7701) (Thanks @bergmeister!)
  • Update Docker files to use MCR (#7726)
  • Update metadata.json in preparation for 6.1 release (#7741)
  • Build and package framework dependent package (#7729)
  • Make sure MSI build works when not preview (#7752)
  • Remove PDBs from fxdependent package (#8006)
  • Improve debugging of NuGet package generation and add type to filtering
  • Documentation and Help Content:
  • Replace ambiguous hang term (#7902, #7931) (Thanks @iSazonov!)
  • Updating incorrect example of PowerShell.Create() (#7926) (Thanks @1RedOne!)
  • Update governance.md (#7927) (Thanks @tommymaynard!)
  • Add cURL to the Bash users list in README.md (#7948) (Thanks @vmsilvamolina!)
  • Optimize image assets used in documentation (#7874) (Thanks @RDIL!)
  • Update build badges (#7792)
  • Remove packaging, building and installation scripts for Ubuntu 17.10 (#7773)
  • Remove badges for master build as it reflects last PR which is not actionable from the README file (#7816)
  • Improve Markdown formatting of beginners guide (#7684) (Thanks @fbehrens!)
  • Fix the Basic cookbooks link (#7934) (Thanks @vmsilvamolina!)
  • Update version for PowerShell release 6.1.0 (#7751)
  • Add VSTS CI build badges for master branch to README.md (#7691) (Thanks @bergmeister!)
  • Add a paragraph on files.wxs updating (#7695) (Thanks @iSazonov!)
  • Update CONTRIBUTION.md about adding an empty line after the copyright header (#7706) (Thanks @iSazonov!)
  • Update docs about .NET Core version 2.0 to be about version 2.x (#7467) (Thanks @bergmeister!)

New in PowerShell 6.1.0 (Sep 14, 2018)

  • Engine Updates and Fixes:
  • Enable indexing operations on System.Tuple and System.ValueTuple (#7633) (Thanks @SeeminglyScience!)
  • Use non-virtual call to invoke 'family or assembly' methods on base class from PowerShell class (#7624) (Thanks @yurko7!)
  • Handle operations with ByRef-like types gracefully in PowerShell (#7533)
  • Make the -settingfile flag on pwsh work for ScriptBlock logging on windows (#7631)
  • Ensure the SSHClientSessionTransportManager stream writer and reader fields are cleared after disposing (#7746)
  • Add LocationChangedAction handler to support the Windows Compatibility module (#7552)
  • General Cmdlet Updates and Fixes:
  • Fix Set-Service -Status Stopped to stop services with dependencies (#5525) (Thanks @zhenggu!)
  • Add the Duration property to HistoryInfo (#5208) (Thanks @powercode!)
  • Fix null reference in ConvertFrom-Markdown when the markdown content is empty (#7463)
  • Fix file blocking issue with WebCmdlets (#7676) (Thanks @Claustn!)
  • Fix performance issue in WSMan provider by using Refresh() to update the status rather than instantiating ServiceController (#7680)
  • Code Cleanup:
  • Remove Suspend-Job and Resume-Job cmdlets from compilation on Unix platforms (#7650)
  • Remove extra spaces in error messages in Modules.resx (#7662) (Thanks @sethvs!)
  • Cleanup the platform runtime checks from FileSystemProvider (#7655) (Thanks @iSazonov!)
  • Improve code style of Send-MailMessage cmdlet (#7723) (Thanks @ThreeFive-O!)
  • Tools:
  • Add tools for PowerShell performance analysis (#7595) (Thanks @lzybkr!)
  • Update code coverage module to download zip files based on job ID (#7653)
  • Tests:
  • Update test which assumes all previews have the name preview in the version (#7625)
  • Update Pester syntax in Set-Location test (#7615) (Thanks @iSazonov!)
  • Add ScriptBlock logging test for Linux and macOS (#7599) (#7586)
  • Add tests to report when package references are out of date (#7661)
  • Fix ModuleSpecification.Tests.ps1 (#7663) (Thanks @sethvs!)
  • Updates Docker package tests (#7667)
  • Build and Packaging Improvements:
  • Update to the latest package references, dotnet core SDK and framework (#7646) (Thanks @iSazonov!)
  • Make the artifact upload only occur for non-PR builds (#7657)
  • Change to not upload artifacts during pull request due to missing VSTS feature (#7588)
  • Remove workaround on VSTS that is no longer needed (#7666)
  • Update docker files to use MCR (#7656)
  • Add symbolic links for libssl and libcrypto to Debian 9 build to make remoting work (#7609)
  • Simplify the StartupInfo type used in Jumplist creation for faster P/Invoke (#7580) (Thanks @powercode!)
  • Add VSTS CI for Windows (#7536)
  • Update the version of PowerShellGet module to 1.6.7 (#7564)
  • update the version of PSReadLine module to 2.0.0-beta3 (#7711)
  • Make sure MSI build works for non-preview builds (#7752)
  • Build and package framework dependent package (#7729)
  • Change locale of mdspell to en-US (#7671)
  • Add daily build on non-windows platforms (#7683)
  • Fix Windows MSI to remove the Uninstall shortcut during an uninstall when more than one version is installed (#7701) (Thanks @bergmeister!)
  • Fix docker image names for release build (#7726)
  • Documentation and Help Content:
  • Update the version of .NET Core in docs (#7467) (Thanks @bergmeister!)
  • Fix links in README.md (#7619) (Thanks @iSazonov!)
  • Add VSTS CI build badges for master branch to README.md (#7691) (Thanks @bergmeister!)
  • Add a paragraph in CONTRIBUTING.md about updating files.wxs (#7695) (Thanks @iSazonov!)

New in PowerShell 6.1.0 RC1 (Aug 23, 2018)

  • Engine Updates and Fixes:
  • Fix to not duplicate the System32 module path when starting pwsh from pwsh (#7414)
  • Fix sequence point update for switch/if/for/while/do-while/do-until statements (#7305)
  • Set the cursor to the place where a user hits tab key (#7299)
  • Adding LanguagePrimitives.TryCompare to provide faster comparisons (#7438) (Thanks @powercode!)
  • Improving performance of LanguagePrimitives.TryConvertTo (#7418) (Thanks @powercode!)
  • Set PowerShellVersion to 3.0 for built-in modules to make Windows PowerShell work when starting from PowerShell Core (#7365)
  • Avoid extra unnecessary allocations in PSMemberInfoInternalCollection<T> (#7435) (Thanks @iSazonov!)
  • Enforce the CompatiblePSEditions check for modules from the legacy System32 module path (#7183)
  • Make sure that SettingFile argument is parsed before we load the settings (#7449)
  • Default to DefaultConsoleWidth when DotNet says WindowWidth is 0 (#7465)
  • General Cmdlet Updates and Fixes:
  • Fix parameter name in the Get-Variable cmdlet error message (#7384) (Thanks @sethvs!)
  • Fix Move-Item -Path with wildcard character (#7397) (Thanks @kwkam!)
  • Ignore Newtonsoft.Json metadata properties in ConvertFrom-Json (#7308) (Thanks @louistio!)
  • Fix several issues in Markdown cmdlets (#7329)
  • Add support for parsing Link Header with variable whitespace (#7322)
  • Change parameter order in Get-Help and help in order to get first -Full and
  • then -Functionality when using Get-Help -Fu followed by pressing tab and help -Fu followed by pressing tab (#7370) (Thanks @sethvs!)
  • Add support for passing files and Markdown directly to Show-Markdown (#7354)
  • Add -SkipIndex parameter to Select-Object (#7483) (Thanks @powercode!)
  • Improve performance of Import-CSV up to 10 times (#7413) (Thanks @powercode!)
  • Update Enable-PSRemoting so configuration name is unique for Preview releases (#7202)
  • Improve performance on JSON to PSObject conversion (#7482) (Thanks @powercode!)
  • Fix error message for Add-Type when -AssemblyName with wildcard is not found (#7444)
  • Make native globbing on Unix return an absolute path when it is given an absolute path (#7106)
  • Improve the performance of Group-Object (#7410) (Thanks @powercode!)
  • Remove one unneeded verbose output from ConvertTo-Json (#7487) (Thanks @devblackops!)
  • Enable Get-ChildItem to produce Mode property even if cannot determine if hard link (#7355)
  • Code Cleanup:
  • Remove empty XML comment lines (#7401) (Thanks @iSazonov!)
  • Cleanup Docker files (#7328)
  • Correct the comment for WSManReceiveDataResult.Unmarshal (#7364)
  • Format Utility csproj with updated codeformatter (#7263) (Thanks @iSazonov!)
  • Bulk update format for files in Management folder with codeformatter (#7346) (Thanks @iSazonov!)
  • Cleanup: replace Utils.FileExists()/DirectoryExists()/ItemExists() with DotNet methods (#7129) (Thanks @iSazonov!)
  • Update Utils.IsComObject to use Marshal.IsComObject since CAS is no longer supported in DotNet Core (#7344)
  • Fix some style issues in engine code (#7246) (Thanks @iSazonov!)
  • Test:
  • Use -BeExactly and -HaveCount instead of -Be in BugFix.Tests.ps1 (#7386) (Thanks @sethvs!)
  • Use -BeExactly and -HaveCount instead of -Be in TabCompletion.Tests.ps1 (#7380) (Thanks @sethvs!)
  • Update CI scripts to support running tests for experimental features (#7419)
  • Use -HaveCount instead of -Be in Where-Object.Tests.ps1 (#7379) (Thanks @sethvs!)
  • Fix ThreadJob tests so that they will run more reliably (#7360)
  • Make logging tests for macOS pending (#7433)
  • Build and Packaging Improvements:
  • Update Build script owners (#7321)
  • Make MUSL NuGet package optional (#7316)
  • Enable pwsh-preview to work on Windows (#7345)
  • Fix SDK dependencies
  • Add back the powershell-core NuGet source for hosting tests
  • Fix typo in environment checker (#7547 & #7549)
  • Only remove the revision if it is 0 from module version when restoring modules (#7538)
  • Update WCF and NJsonSchema NuGet packages to latest released patch version (#7411) (Thanks @bergmeister!)
  • Add Linux and macOS VSTS CI (#7490, #7527, #7535, #7515 & #7516)
  • Updated ThreadJob to version 1.1.2 (#7522)
  • Add xUnit project to PowerShell.sln and make it runnable from within VisualStudio (#7254) (Thanks @bergmeister!)
  • Update NuGet packaging code for the new markdown assembly (#7431)
  • Update version of modules shipped with PowerShell (#7531)
  • Retry restore on failure (#7544 & #7550)
  • Update PowerShellGet version
  • Update NuGet package metadata (#7517)
  • Update reference to use packages from NuGet.org (#7525)
  • Start-DevPowerShell: add -Configuration and handle -ArgumentList more properly (#7300) (Thanks @jazzdelightsme!)
  • Add preview icon to macOS launcher (#7448) (Thanks @thezim!)
  • Add Microsoft.PowerShell.MarkdownRender to signing.xml (#7472)
  • Fix building on RedHat Enterprise Linux (#7489)
  • Build: Also search PATH for rcedit (#7503) (Thanks @kwkam!)
  • Save modules to un-versioned folder to enable servicing (#7518 & #7523)
  • Fix macOS launcher app to allow release and preview versions (#7306) (Thanks @thezim!)
  • Documentation and Help Content:
  • Fix docs comments in utility folder (#7192) (Thanks @iSazonov!)
  • Fix a typo in issue-management.md (#7393) (Thanks @alexandair!)
  • Fix casing of GitHub in best-practice.md (#7392) (Thanks @alexandair!)
  • Fix typos in docs/maintainers/README.md (#7390) (Thanks @alexandair!)
  • Add maintainer's best practice document and update maintainer list (#7311)
  • Update Docker link to PowerShell-Docker (#7351) (Thanks @JoshuaCooper!)
  • Add Snapcraft to spelling dictionary (#7318)
  • Update README.md and metadata.json for release v6.0.4 (#7497)
  • Add Former Repository Maintainers section in maintainers/README.md (#7475)
  • Update the HelpUri for Get-ExperimentalFeature (#7466)

New in PowerShell 6.0.4 (Aug 13, 2018)

  • Build and Packaging Improvements:
  • Aggregate native components into a single NuGet package "Microsoft.PowerShell.Native".
  • Update the version of NuGet packages referenced by PowerShell.
  • Fix release build for macOS.
  • Test:
  • Fix xUnit tests.
  • Add new tests for hosting PowerShell SDK NuGet packages.

New in PowerShell 6.1.0 Preview 3 (Jun 14, 2018)

  • Breaking Changes:
  • Clean up uses of CommandTypes.Workflow and WorkflowInfo (#6708)
  • Disallow Basic Auth over HTTP in PowerShell Remoting on Unix (#6787)
  • Change packaging to differentiate only between major versions and previews (#6968)
  • Enhance and refactor Add-Type cmdlet (#6141)
  • A few error strings were removed and thus the corresponding fully-qualified error ids are not in use anymore.
  • Engine Updates and Fixes:
  • Fix crash when terminal is reset (#6777)
  • Fix a module-loading regression that caused an infinite loop (#6843)
  • Further improve PSMethod to Delegate conversion (#6851)
  • Blacklist System.Windows.Forms from loading to prevent a crash (#6822)
  • Fix Format-Table where rows were being trimmed unnecessarily if there's only one row of headers (#6772)
  • Fix SetDate function in libpsl-native to avoid corrupting memory during P/Invoke (#6881)
  • Fix tab completions for hash table (#6839) (Thanks @iSazonov!)
  • Fix parser to continue parsing key-value pairs after an If-Statement value in a HashExpression (#7002)
  • Add error handling for #requires in an interactive session (#6469)
  • General Cmdlet Updates and Fixes:
  • Improve parameter validation in ExportCsvHelper (#6816) (Thanks @sethvs!)
  • Quote Multipart form-data field names (#6782)
  • Fix Web Cmdlets for .NET Core 2.1 (#6806)
  • Fix Set-Location DriveName: to restore current working directory in the drive (#6774) (Thanks @mcbobke!)
  • Add the alias -lp for -LiteralPath parameters #6732 (#6770)
  • Remove more function and move the $env:PAGER capability into the help function (#6059) (Thanks @iSazonov!)
  • Add line break to the error message for Set-ExecutionPolicy (#6803)
  • Code Cleanup:
  • Clean up #if SILVERLIGHT (#6907)
  • Clean up the unused method NonWindowsGetDomainName() (#6948)
  • Clean up FileSystem provider (#6909)
  • Test:
  • Add tests for PowerShell hosting API to verify MyGet packages (#6737)
  • Remove Web Cmdlets tests using proxy environment variables (#6808)
  • Enable Web Cmdlets tests for greater platform support (#6836)
  • Convert ShouldBeErrorId to Should -Throw -ErrorId in PowerShell tests (#6682)
  • Fix CIM cmdlets tests (#6755)
  • Add tests for PowerShell classes inheriting from abstract .NET classes (#6752)
  • Fix Select-Object.Tests.ps1 which previously failed intermittently on Unix platforms. (#6747)
  • Update docker package tests to fix error on OpenSUSE 42 (#6783)
  • Fix test and infrastructure that block code coverage runs (#6790)
  • Update Tests Isfile to correct response for "/" (#6754)
  • Improve code coverage in Export-Csv.Tests.ps1 (#6795)
  • Change -Quiet parameter of Invoke-Pester to -Show None in OpenCover.psm1 (#6798)
  • Replace Dbg.Assert with if () throw in CSVCommands.cs (#6910)
  • Fix xUnit test GetTempFileName (#6943)
  • Build and Packaging Improvements:
  • Add Windows Compatibility Pack 2.0.0 to PowerShell Core and adopt the official .NET Core 2.1 (#6958)
  • Add Jumplist 'Run as Administrator' to Taskbar on Windows (#6913, #6985) (Thanks @bergmeister!)
  • Use AppVeyor matrix for faster Pull Request builds (#6945)
  • Fix build.psm1 to not add tool path to $PATH twice (#6834)
  • Add script to create a container manifest (#6735)
  • Fix docker manifest creation script to work with more complex tags and with repeated use (#6852)
  • Add functions to merge Pester and xUnit logs (#6854)
  • Enable generating full symbols for the Windows debug build (#6853)
  • Add functions into build.psm1 to save and restore PSOptions between different sessions. (#6884)
  • Update signing XML based on new signing guidelines (#6893)
  • Update the release docker files to allow specifying the version of to-be-installed PowerShell and the version of image to use (#6835)
  • Updates docker files for Fedora 27 and Kali Linux (#6819)
  • Change packaging to support Ubuntu 17.10 and 18.04 (#6769)
  • Update Get-ChangeLog to make it more accurate (#6764)
  • Fix comparison to see if sudo test is needed in install-*.sh (#6771)
  • Packaging: Add registry keys to support library folder background for explorer context menu (#6784)
  • Skip dotnet-cli initialization and stop caching the dotnet folder for Travis CI (#7007)
  • Skip compiling the non-supported cmdlets on Unix in System.Management.Automation.dll to fix the crash in Unix debug build (#6939)
  • Use PSReadLine 2.0.0-beta2 from PSGallery (#6998)
  • Update PSRP Linux NuGet package version to 1.4.2-* (#6711)
  • Add path cleanup utility Reset-PWSHSystemPath.ps1 (#6892)
  • Add logic to create signing XML for NuGet packages (#6921)
  • Add and config the Settings.StyleCop file (#6930, #6986)
  • Fix the double curly bracket typo in a docker file (#6960)
  • Remove dependencies on libcurl and libunwind in packaging to match the .NET Core behavior (#6964)
  • Make the docker build fail when the curl operation fails. (#6961)
  • Documentation and Help Content:
  • Update installation doc about Raspbian (#6859)
  • Add code coverage report generation instructions (#6515)
  • Migrate docs from PowerShell repository to Docs repository (#6899)
  • Fix broken links due to migrating GitHub docs on Installation, Known Issues and Breaking Changes to docs.microsoft.com (#6981)
  • Update documentation on how to write tests verifying errors conditions (#6687)
  • Fix preview download links in README.md (#6762)

New in PowerShell 6.1.0 Preview 2 (Apr 30, 2018)

  • Breaking Changes:
  • Remove support for file to opt-out of telemetry, only support environment variable (#6601)
  • Simplify the installation paths the MSI uses (#6442)
  • Engine Updates and Fixes:
  • Fix running pwsh produced from dotnet build (#6549)
  • Remove the FullCLR-only symbol-info related code from EventManager.cs (#6563)
  • Improve PSMethod-to-Delegate conversion (#6570)
  • Fix PsUtils.GetManModule() to avoid infinite loop when there was no main module (#6358)
  • Fix error in windows environment provider when the environment variable has duplicates that differ only by case (#6489)
  • Make sure that the width of the header is at least the size of the label (or property name) (#6487)
  • Enable [Environment]::OSVersion to return current OS rather than compatible version (#6457)
  • Change the SaveError method in Parser to use nameof for error ids (#6498)
  • Fix error when Format-Wide -AutoSize | Out-String is called (#6491)
  • Make LanguagePrimitive.GetEnumerable treat DataTable as Enumerable (#6511)
  • Fix formatting of tables where headers span multiple rows (#6504)
  • Improve performance of parsing RegexOption for -split by using if branches (#6605)
  • Enable specifying sshd subsystem to use via -Subsystem (#6603)
  • Add some optimizations in formatting subsystem (#6678)
  • Throw better parsing error when statements should be put in named block (#6434)
  • Use Unregister-Event to remove an event subscriber when removing PSEdit function (#6449)
  • Make the PSISERemoteSessionOpenFile a support event (#6582)
  • Add -WorkingDirectory parameter to pwsh (#6612)
  • Support importing module paths that end in trailing directory separator (#6602)
  • Formatting: Use cache for dash padding strings for tables (#6625)
  • Port Windows PowerShell AppLocker and DeviceGuard UMCI application white listing support (#6133)
  • Reduce allocations in TableWriter (#6648)
  • General Cmdlet Updates and Fixes:
  • Add -Resume Feature to WebCmdlets (#6447)
  • Support user@host:port syntax for SSH transport (#6558)
  • Add ported Test-Connection cmdlet (#5328)
  • Added line break to Access-Denied error message (#6607)
  • Some fixes in Get-Date -UFormat (#6542)
  • Added check for existence of Location HTTP header before using it (#6560)
  • Enable Update-Help to save help content in user scope by default (#6352)
  • Update Enable-PSRemoting to create PowerShell.6 endpoint and version specific endpoint (#6519, #6630)
  • Update error message that Disconnect-PSSession is only supported with WSMan (#6689)
  • Make Export-FormatData print pretty XML output (#6691)
  • Add -AsArray parameter to ConvertoTo-Json command (#6438)
  • Add Test-Json cmdlet (NJsonSchema) (#5229)
  • Correct a typo in comment for Invoke-WebRequest (#6700)
  • Re-order UFormat options in Get-Date (#6627)
  • Add the parameter -Not to Where-Object (#6464)
  • Code Cleanup:
  • Engine: Fix several code cleanup issues (#6552, #6609)
  • Clean up workflow logic in the module loading component (#6523)
  • Engine: Clean up unneeded GetTypeInfo() calls (#6613, #6636, #6633, #6635, #6634)
  • Test:
  • Fix line ending in DefaultCommands.Tests.ps1 from CRLF to LF (#6553)
  • Use new Pester parameter syntax in tests (#6490, #6574, #6535, #6536, #6488, #6366, #6351, #6349, #6256, #6250)
  • Fix Copy.Item.Tests.ps1 (#6596)
  • Fix typos or formatting in some test files (#6595, #6593, #6594, #6592, #6591)
  • Add missing Start-WebListener to WebCmdlets tests (#6604)
  • Update Dockerfile test to use Ubuntu 17.10 as the base image (#6503)
  • Add PowerShell logging tests for macOS and Linux (#6025)
  • Add tests for Format-Table -Wrap (#6670)
  • Reformat Format-Table tests (#6657)
  • Add new reliable tests for Get-Date -UFormat (#6614)
  • Build and Packaging Improvements:
  • Use C# latest language in .csproj files (#6559)
  • Update installpsh-<distrofamily>.sh installers to handle "preview" in version number (#6573)
  • Enable PowerShell.sln to work in VisualStudio (#6546)
  • Remove duplicate Restore-PSPackage (#6544)
  • Use -WorkingDirectory parameter to handle context menu when path contains single quotes (#6660)
  • Make -CI not depend on -PSModuleRestore in Start-PSBuild (#6450)
  • Restore for official Linux arm builds (#6455)
  • Fix error about setting readonly variable in install-powershell.sh (#6617)
  • Make release macOS build work better (#6619, #6610)
  • MSI: add function to generate a MSP package (#6445)
  • Documentation and Help Content:
  • Doc: Update Ubuntu source creation commands to use curl -o (#6510)
  • Update stale bot message (#6462)
  • Remove extraneous SSH and install docs from the 'demos' folder (#6628)

New in PowerShell 6.1.0 Preview (Mar 25, 2018)

  • Breaking Changes:
  • Throw terminating error in New-TemporaryFile and make it not rely on the presence of the TEMP environment variable (#6182)
  • Remove the unnecessary AddTypeCommandBase class from Add-Type (#5407)
  • Remove unsupported members from the enum Language in Add-Type (#5829)
  • Fix range operator to work better with character ranges (#5732)
  • Engine Updates and Fixes:
  • Fix ValidateSet with generator in a module (#5702)
  • Update SAL annotation and fix warnings (#5617)
  • Add ForEach and Where methods to PSCustomobject (#5756)
  • Add Count and Length properties to PSCustomobject (#5745)
  • Make minor fixes in compiler to properly handle void type expression (#5764)
  • Logging: Fix the escaped characters when generating .resx file from PowerShell ETW manifest. (#5892)
  • Remove PSv2 only code from Types_Ps1Xml.cs and HostUtilities.cs (#5907)
  • Enable passing arrays to pwsh -EncodedArguments on debug builds. (#5836)
  • Logging: Handle path that contains spaces in RegisterManifest.ps1 (#5859)
  • Add -settingsfile to pwsh to support loading a custom powershell config file. (#5920)
  • Return better error for pwsh -WindowStyle on unsupported platforms. (#5975)
  • Enable conversions from PSMethod to Delegate (#5287)
  • Minor code clean-up changes in tab completion code (#5737)
  • Add lambda support to -replace operator (#6029)
  • Fix retrieval of environment variables on Windows in cases where variable names differ only by case. (#6320)
  • Fix the NullRefException when using -PipelineVariable with DynamicParam block (#6433)
  • Add NullReference checks to two code paths related to PseudoParameterBinder (#5738)
  • Fix PropertyOnlyAdapter to allow calling base methods (#6394)
  • Improve table view for Certs and Signatures by adding EnhancedKeyUsageList and StatusMessage (#6123)
  • Fix the filtering of analytic events on Unix platforms. (#6086)
  • Update copyright and license headers (#6134)
  • Set pipeline thread stack size to 10MB (#6224)
  • General Cmdlet Updates and Fixes:
  • Fix the NullRefException in Enter-PSHostProcess (#5995)
  • Merge and Sort BasicHtmlWebResponseObject and ContentHelper in Web Cmdlets (#5720)
  • Encoding for New-ModuleManifest on all platforms should be UTF-8 NoBOM (#5923)
  • Make Set-Location use path with wildcard characters as literal if it exists (#5839)
  • Combine Web Cmdlets partial class files (#5612)
  • Change Microsoft.PowerShell.Commands.SetDateCommand.SystemTime to struct. (#6006)
  • Add Simplified multipart/form-data support to Web Cmdlets through -Form parameter (#5972)
  • Make a relative redirect URI absolute when Authorization header present (#6325)
  • Make relation-link handling in Web Cmdlets case-insensitive (#6338)
  • Make Get-ChildItem -LiteralPath accept Include or Exclude filter (#5462)
  • Stop ConvertTo-Json when Ctrl+c is hit (#6392)
  • Make Resolve-Path -Relative return useful path when $PWD and -Path is on different drive (#5740)
  • Correct the %c, %l, %k, %s and %j formats in Get-Date -UFormat (#4805)
  • Add standard deviation implementation on Measure-Object (#6238)
  • Make Get-ChildItem <PATH>/* -file include <Path> as search directory (#5431)
  • Enable setting PSSession Name when using SSHTransport and add Transport property (#5954)
  • Add Path alias to -FilePath parameters and others for several commands (#5817)
  • Add the parameter -Password to Get-PfxCertificate (#6113)
  • Don't add trailing spaces to last column when using Format-Table (#5568)
  • Fix table alignment and padding. (#6230)
  • Add -SkipHeaderValidation Support to ContentType on Web Cmdlets (#6018)
  • Add common aliases for all write-* commands default message parameter (#5816)
  • Make UTF-8 the default encoding for application/json (#6109)
  • Enable $env:PAGER to work correctly if arguments are used (#6144)
  • Test
  • Convert Web Cmdlets test to one-true-brace-style formatting (#5716)
  • Add a test for IValidateSetValuesGenerator in a module (#5830)
  • Replace HttpListener tests with WebListener (#5806, #5840, #5872)
  • Stop HttpListener from running in Web Cmdlets tests (#5921)
  • Fix PSVersion in PSSessionConfiguration tests (#5554)
  • Update test framework to support Pester v4 (#6064)
  • Update tests to use Pester v4 Syntax. (#6294, #6257, #6306, #6304, #6298)
  • Add negative tests for Copy-Item over remote sessions (#6231)
  • Markdown test: Use strict in JavaScript (#6328)
  • Add tests for Get-Process about the -Module and -FileVersion parameters (#6272)
  • Add test for the OsLocalDateTime property of Get-ComputerInfo. (#6253)
  • Change Get-FileHash tests to use raw bytes (#6430)
  • Remove runas.exe from tests as we have tags to control this behavior (#6432)
  • Refactor the Get-Content tests to use -TestCases. (#6082)
  • Use RequireAdminOnWindows tag in Set-Date tests (#6034)
  • Remove -TimeOutSec from non timeout related tests (#6055)
  • Add verbosity and more accurate timeout implementation for Start-WebListener (#6013)
  • Skip tests that use ExecutionPolicy cmdlets on Unix (#6021)
  • Change Web Cmdlet tests to use 127.0.0.1 instead of Localhost (#6069)
  • Fix Start-PSPester to include or exclude RequireSudoOnUnix tag smartly on Unix (#6241)
  • Fix the terse output on Windows for test runs without admin privilege (#6252)
  • Add RequireSudoOnUnix tag for Get-Help tests. (#6223)
  • Add tests for *-Item Cmdlets in function provider (#6172)
  • Build and Packaging Improvements:
  • Add option to add explorer shell context menu in Windows installer (#5774)
  • Make the explorer shell context menu registry entries platform specific to allow side by side of x86 and x64. (#5824)
  • Fix start menu folder clash of shortcut when x86 and x64 are both installed by appending (x86) for x86 installation. (#5826)
  • Reduce image file sizes using lossless compression with imgbot (#5808)
  • Windows installer: Allow Launch PowerShell checkbox to be toggled using the space bar. (#5792)
  • Fix release packaging build (#6459)
  • Fail AppVeyor Build if MSI does not build (#5755)
  • Cleanup temporarily created WiX files after compilation to be able to have a clean re-build (#5757)
  • Fix install-powershell.ps1 for running during window setup (#5727)
  • Start using Travis-CI cache (#6003)
  • Fix build, packaging and installation scripts for SLES (#5918)
  • Update recommended WiX toolset link to be generic to WiX 3.x but mention that latest version of 3.11 has to be taken (#5926)
  • Add service point manager call in Install-PowerShell.ps1 to force TLS1.2. (#6310)
  • Add -Restore when build win-arm and win-arm64 (#6353)
  • Make sure package verification failure fails the AppVeyor build (#6337)
  • Specify the runtime when running dotnet restore in Start-PSBuild (#6345)
  • Rename log and logerror to Write-Log [$message] [-error] (#6333)
  • Add support for Debian in installpsh-debian.sh (#6314)
  • MSI: Make preview builds to install Side by side with release builds (#6301)
  • Add TLS1.2 workaround for code coverage script (#6299)
  • Cleanup after Powershell install for CentOS and Fedora Docker images (#6264)
  • MSI: Update the environment variable PATH with proper value (#6441)
  • MSI: Remove the version from the product name (#6415)
  • Support non-GitHub commits in the change log generation script (#6389)
  • Fix secret and JavaScript compliance issues (#6408)
  • Remove AppVeyor specific cmdlet from Start-NativeExecution (#6263)
  • Restore modules from the NuGet package cache by using dotnet restore (#6111)
  • CI Build: Use TRAVIS_PULL_REQUEST_SHA to accurately get the commit message (#6024)
  • Use TLS1.2 on Windows during Start-PSBootstrap (#6235)
  • Use TLS1.2 in Start-PSBootStrap without breaking HTTPS (#6236)
  • Add options to enable PSRemoting and register Windows Event Logging Manifest to MSI installer (#5999)
  • Documentation and Help Content:
  • Show usage (short) help if command line parameter is wrong (#5780)
  • Add the breaking changes doc for 6.0.0 release. (#5620)
  • Remove DockerFile for Fedora 25 and add DockerFile for Fedora 27 (#5984)
  • Update BREAKINGCHANGES.md to include WebCmdlets breaking changes (#5852)
  • Fix typos in BREAKINGCHANGES.md (#5913)
  • Update docs with test guidelines with the RequireSudoOnUnix tag. (#6274)
  • Update to Governance doc to reflect current working model (#6323)
  • Add guidance on adding copyright and license header to new source files (#6140)
  • Fix the command to build type catalog in internals.md (#6084)
  • Fix Pull Request Process dead link (#6066)
  • Update processes to allow for coordinated vulnerability disclosure (#6042)
  • Rework Windows Start menu folder name (#5891)
  • Update Raspbian installation instructions to create symlink for pwsh (#6122)
  • Fix various places that still refer to old versions of pwsh (#6179)
  • Change synopsis of install-powershell.ps1 to reflect that it works cross-platform (#5465)

New in PowerShell 6.0.2 (Mar 16, 2018)

  • Engine updates and fixes:
  • Update PowerShell to use 2.0.6 dotnet core runtime and packages (d607f20). This change addresses the following vulenerabilities:Microsoft Security Advisory CVE-2018-0875: Hash Collision can cause Denial of Service
  • Build and Packaging Improvements:
  • Add Ubuntu build without AppImage (#6380)
  • Add scripts to set and or update the release tag in VSTS (#6107)
  • Fix DSC Configuration compilation (#6225)
  • Fix errors in Start-PSBootStrap during release builds (#6159)
  • Fix spelling failures in CI (#6191)
  • Use PowerShell windowsservercore Docker image for release builds (#6226)
  • Use ADD instead of Invoke-WebRequest in nanoserver Docker file (#6255)
  • When doing daily/test build in a non-release branch use the branch name as the preview name (#6355)
  • Add Environment Variable override of telemetry (#6063)
  • Build: Remove two unneeded lines from 'Invoke-AppveyorFinish' (#6344)
  • MSI: Refactor New-MsiPackage into packaging.psm1
  • and various fixes to enable patching
  • (#5871, #6221, #6254, #6303, #6356, #6208, #6334, #6379, #6094, #6192)
  • MSI: Use HKLM instead of HKCU registry keys since the current installation scope is perMachine. (#5915)

New in PowerShell 6.0.1 (Jan 25, 2018)

  • Engine updates and fixes:
  • Update PowerShell to use 2.0.5 dotnet core runtime and packages.
  • This change addresses the following vulnerabilities:
  • Microsoft Security Advisory CVE-2018-0764: Denial of Service when parsing XML documents
  • Microsoft Security Advisory CVE-2018-0786: Security Feature Bypass in X509 Certificate Validation
  • Build and Packaging Improvements:
  • Re-release of v6.0.0 as v6.0.1 due to issues upgrading from pre-release versions
  • Test:
  • Update regular expression to validate GitCommitId in $PSVersionTable to not require a pre-release tag (#5893)

New in PowerShell 6.0.0 (Jan 11, 2018)

  • Breaking changes:
  • Remove sc alias which conflicts with sc.exe (#5827)
  • Separate group policy settings and enable policy controlled logging in PowerShell Core (#5791)
  • Engine updates and fixes:
  • Handle DLLImport failure of libpsrpclient in PowerShell Remoting on Unix platforms (#5622)
  • Test:
  • Replace lee.io Tests with WebListener (#5709) (Thanks @markekraus!)
  • Update the docker based release package tests due to the removal of Pester module and other issues (#5692)
  • Replace Remaining HttpBin.org Tests with WebListener (#5665) (Thanks @markekraus!)
  • Build and Packaging Improvements:
  • Update x86 and x64 MSI packages to not overwrite each other (#5812) (Thanks @bergmeister!)
  • Update Restore-PSPester to include the fix for nested describe errors (#5771)
  • Automate the generation of release change log draft (#5712)
  • Documentation and Help Content:
  • Updated help Uri to point to latest help content for Microsoft.PowerShell.Core module (#5820)
  • Update the installation doc for Raspberry-Pi about supported devices (#5773)
  • Fix a typo and a Markdown linting error in the Pull Request Template (#5807) (Thanks @markekraus!)
  • Update submodule documentation for pester removal (#5786) (Thanks @bergmeister!)
  • Change Github to GitHub in CONTRIBUTING.md (#5697) (Thanks @stuntguy3000!)
  • Fix incorrect release date on the changelog (#5698) (Thanks @SwarfegaGit!)
  • Add instructions to deploy win-arm build on Windows IoT (#5682)
  • SHA256 Hashes of the release artifacts:
  • powershell_6.0.0-1.debian.8_amd64.deb
  • 4A805E7B276646ECD4CD7A33D9B701CA9893FCB3F502E9D87207E1A017CDD7AC
  • powershell_6.0.0-1.debian.9_amd64.deb
  • 14CD9082B827E987F63D1539FA5EB448DC9F5F55B927F51D331010B7C35CFD19
  • powershell_6.0.0-1.ubuntu.14.04_amd64.deb
  • 690DD94132C841C379A0456E89A7F494379C790E873B55FA3DB2C2E6108447D2
  • powershell_6.0.0-1.ubuntu.16.04_amd64.deb
  • A1C4981BB8059D7052DD723BA40F1FF4AD1F8ED3CB037A7D20699FB47AAE9CEE
  • powershell_6.0.0-1.ubuntu.17.04_amd64.deb
  • 5A316C60E1D8FB4673D1374BF641CF42D3EC8274D3B606A35AF937198C374F3F
  • powershell-6.0.0-1.rhel.7.x86_64.rpm
  • BA625BA77D6E75550E227BF408325BFF25CFFBA1911AC74A8DC11154AEB8314F
  • powershell-6.0.0-linux-arm32.tar.gz
  • 65831535A136FFE53077864D55D2F7E51E7DD1CB52CA38E9000032F09B244E86
  • powershell-6.0.0-linux-x64.tar.gz
  • 2CCC89CC6C99FF607FF5D82F2DBBEC05C60E0494C75DC500CD46F2EDCC7624FE
  • powershell-6.0.0-x86_64.AppImage
  • B1E1E435EC3BEC5BBC350F6E6B9110B4A98D56CC5DA203B234C386139B1477E5
  • PowerShell-6.0.0-win-arm32.zip
  • 05C3BD906ECBDD87B2799F720172FA9B5AB5BCF17127DA9DF44765BA76FF310B
  • PowerShell-6.0.0-win-arm64.zip
  • 2B308C2435270C1429146B3D309167C7B9BAF3524D3665DA9A703091171FDA2A
  • PowerShell-6.0.0-win-x64.msi
  • A1155D0F9D697B3EBF51C03D328886F9000709C1C4688DA42FF9C234AF02A63F
  • PowerShell-6.0.0-win-x64.zip
  • FE6C17E9829FFD0503917A1A4ACC3E75A203A80B28E2D9EFFDD7F0AB576F7D5D
  • PowerShell-6.0.0-win-x86.msi
  • 494DF01BFF5A007F98761A5088E6E4AA6754808DEE0CBF096FFF171D1233E8FC
  • PowerShell-6.0.0-win-x86.zip
  • 8E32785547FDD90412FA3A8FA4703D272933999F3D29CAE9FEDA19119B3A2D46
  • powershell-6.0.0-osx-x64.tar.gz
  • B23BDB6A89238C64D7C7A125EB28554693502D6203A9E8EFA84E583F63E44B11
  • powershell-6.0.0-osx.10.12-x64.pkg
  • 396BBB5907FD0EC0BDFBFE0BF01961B52B4F1F1CEDDC95467DD9ECD4FA5281DF

New in PowerShell 6.0.0 RC 2 (Dec 15, 2017)

  • Breaking changes:
  • Skip null-element check for collections with a value-type element type (#5432)
  • Make AllSigned execution policy require modules under $PSHome to be signed (#5511)
  • Engine updates and fixes:
  • Update PowerShell to use 2.0.4 dotnet core runtime. (#5677)
  • Remove references to the old executable powershell or powershell.exe (#5408)
  • General cmdlet updates and fixes:
  • Remove unnecessary check for Paths.count > 0, in the *-FileCatalog CmdLets (#5596)
  • Use explicit libpsl-native binary name for dllimport. (#5580)
  • Build and Packaging Improvements:
  • Fix Get-EnvironmentInformation to properly check for CoreCLR (#5592) (Thanks @markekraus!)
  • Make Travis CI use libcurl+openssl+gssapi (#5629) (Thanks @markekraus!)
  • Disambiguate icon for daily builds on Windows (#5467) (Thanks @bergmeister!)
  • Fix Import-CliXml tests which still use powershell instead of pwsh and make sure it fails if it regresses (#5521) (Thanks @markekraus!)
  • Update port number used for WebCmdlets tests which broke due to a change in AppVeyor (#5520) (Thanks @markekraus!)
  • Clean up use of Runspaceconfiguration from comments and xUnit test code (#5569) (Thanks @Bhaal22!)
  • Replace HttpListener Response Tests with WebListener (#5540, #5605) (Thanks @markekraus!)
  • Fix the path to powershell_xxx.inc in Start-Build (#5538) (Thanks @iSazonov!)
  • Remove Pester as a module include with the PowerShell Packages.
  • You should be able to add it by running Install-Module Pester. (#5623, #5631)
  • Refactor New-UnixPackaging into functions to make the large function more readable. (#5625)
  • Make the experience better when Start-PSPester doesn't find Pester (#5673)
  • Update packaging and release build scripts to produce zip packages for win-arm and win-arm64 (#5664)
  • Enable Install-Debian to work with VSTS Hosted Linux Preview (#5659)
  • Add linux-arm tarball package to release build (#5652, #5660)
  • Enable building for win-arm and win-arm64 (#5524)
  • Make macOS package require 10.12 or newer (#5649, #5654)
  • Update signing subjects to something meaningful (#5650)
  • Make New-UnixPackage more readable (#5625)
  • Update PowerShellGet tests to validate the new install location of AllUsers scope. (#5633)
  • Increase reliability of flaky test that fails intermittently in CI (#5641)
  • Exclude markdown files from Pester folder from the Markdown meta test (#5636)
  • Run tests for Windows installer only on Windows (#5619)
  • Suppress the expected errors from Select-Xml tests (#5591)
  • Add retry logic to prerequisite URL and output URL on failure so you can more easily troubleshoot (#5601, #5570)
  • Make sure submodule are initialized when running Mac release build (#5496)
  • Remove duplicate files in Windows packages in a folder called signed (#5527)
  • Add PowerShell VSCode style settings (#5529) (Thanks @bergmeister!)
  • Add Travis CI matrix for improved job tagging (#5547)
  • Remove community docker files from official docker image validation (#5508)
  • Documentation and Help Content:
  • XML documentation fix for CompletionResult (#5550) (Thanks @bergmeister!)
  • Change synopsis of install-powershell.ps1 to reflect that it works cross-platform (#5465) (Thanks @bergmeister!)
  • Add more helpful message for AmbiguousParameterSet exception (#5537) (Thanks @kvprasoon!)
  • Update the contribution guideline to note that updating the changelog is required. (#5586)
  • Updated doc to build arm/arm64 versions of psrp.windows and PowerShell.Core.Instrumentation.dll libraries (#5668)
  • Update Contribution guidelines with work in progress guidance (#5655)
  • Update code coverage tests to get GitCommitId using the ProductVersion from Assembly (#5651)
  • Remove requirement to updating changelog update in PR (#5644, #5586)
  • Minor refactoring of the release build scripts (#5632)
  • Update PowerShell executable name in using-vscode.md (#5593)
  • Fix xUnit test for PS (#4780)
  • Update install link and instructions for R-Pi (#5495)
  • Compliance Work:
  • Compliance work is required for Microsoft to continue to sign and release packages from the project as official Microsoft packages.
  • Remove PerformWSManPluginReportCompletion, which was not used, from pwrshplugin.dll (#5498) (Thanks @bergmeister!)
  • Remove exclusion for hang and add context exception for remaining instances (#5595)
  • Replace strlen with strnlen in native code (#5510)

New in PowerShell 6.0.0 RC (Nov 20, 2017)

  • Breaking changes:
  • Fix -Verbose to not override $ErrorActionPreference. (#5113)
  • Fix Get-Item -LiteralPath a*b to return error if a*b doesn't actually exist. (#5197)
  • Remove AllScope from most default aliases to reduce overhead on creating new scopes. (#5268)
  • Change $OutputEncoding default to be UTF8 without BOM rather than ASCII. (#5369)
  • Add error on legacy credential over non-HTTPS for Web Cmdlets. (#5402)
  • Fix single value JSON null in Invoke-RestMethod. (#5338)
  • Add PSTypeName Support for Import-Csv and ConvertFrom-Csv. (#5389)
  • Engine updates and fixes
  • Add char range overload to the .. operator, so 'a'..'z' returns characters from 'a' to 'z'. (#5026)
  • Remove CommandFactory because it serves no real purpose. (#5266)
  • Change to not insert line breaks at console window width to output (except for tables). (#5193)
  • Use Ast for context in parameter binding and fix to glob the native command argument only when it's not quoted. (#5188)
  • Fix dynamic class assembly name. (#5292)
  • Update powershell to use 2.0.4-servicing dotnet core runtime. (#5295)
  • Fix ExecutionContext.LoadAssembly to load with name when file cannot be found. (#5161)
  • Speed up the check for suspicious content in script texts. (#5302)
  • Use native os_log APIs on macOS for PowerShell Core logging. (#5310)
  • Redirect ETW logging to Syslog on Linux. (#5144)
  • Improve how we pass the array literal to native commands. (#5301)
  • Make SemanticVersion compatible with SemVer 2.0. (#5037)
  • Revert refactoring changes that broke remoting to Windows PowerShell 5.1. (#5321)
  • Port some fixes in Job for an issue that causes PowerShell to not respond. (#5258)
  • Multiple improvements by CodeRush static analysis. (#5132)
  • Fix the Runspace cleanup issue that causes PowerShell to not respond on exit. (#5356)
  • Update PowerShell to depend on new version of psrp and libmi nuget packages on Unix platforms. (#5469)
  • General cmdlet updates and fixes:
  • Add -AsHashtable to ConvertFrom-Json to return a Hashtable instead. (#5043)
  • Fix Import-module to not report a loaded module was not found. (#5238)
  • Fix performance issues in Add-Type. (#5243)
  • Fix PSUserAgent generation for Web Cmdlets on Windows 7. (#5256)
  • Remove DCOM support from *-Computer cmdlets. (#5277)
  • Add multiple link header support to Web Cmdlets. (#5265)
  • Use wider columns for process id and user. (#5303)
  • Add Remove-Alias Command. (#5143)
  • Update installpsh-suse.sh to work with the tar.gz package. (#5309)
  • Add Jobject serialization support to ConvertTo-Json. (#5141)
  • Display full help with 'help' function. (#5195)
  • Fix help function to not pipe to more if objects are returned instead of help text. (#5395)
  • Fix Unblock-File to not write an error if the file is already unblocked. (#5362)
  • Clean up FullCLR code from Web Cmdlets. (#5376)
  • Exclude cmdlets that are not supported on Unix platforms. (#5083)
  • Make Import-Csv support CR, LF and CRLF as line delimiters. (#5363)
  • Fix spelling in Web Cmdlet errors. (#5427)
  • Add SslProtocol support to Web Cmdlets. (#5329)
  • Build and Packaging Improvements:
  • Use RCEdit to embed icon and version information into pwsh.exe. (#5178)
  • Update Docker file for Nano Server 1709 release. (#5252)
  • Change VSCode build task to use pwsh. (#5255)
  • Refactor building and packaging scripts for signing in release build workflow. (#5300)
  • Always build with -CrossGen in CI to verify a fix in CrossGen tool. (#5315)
  • Separate Install-PowerShellRemoting.ps1 from psrp.windows nuget package. (#5330)
  • Include symbols folder an embedded zip when packaging symbols. (#5333)
  • Add Uniform Type Identifier conforming with Apple standards using a reverse DNS style prefix. (#5323)
  • Update Wix toolset download link to newer version 3.11 (#5339)
  • Re-enable macOS launcher after fixing an issue that blocked macOS package generation. (#5291)
  • Set expected binaries and variable name for folder for symbols build. (#5357)
  • Rename and update PowerShell ETW manifest to remove the Windows PowerShell dependency. (#5360)
  • Add ability to produce tar.gz package for Raspbian. (#5387)
  • Update Find-Dotnet to find dotnet with the compatible SDK. (#5341)
  • Add signing manifest and script to update it with production values. (#5397)
  • Add install-powershell.ps1 to install PowerShell Core on windows. (#5383)
  • Make -Name a dynamic parameter in Start-PSPackage. (#5415)
  • Support [package] tag in PR CI and fix nightly build on macOS. (#5410)
  • Enhance install-powershell.ps1 to work on Linux and macOS. (#5411)
  • Move the RCEdit step to the build phase rather than the packaging phase. (#5404)
  • Allow packaging from a zip package to allow for signing. (#5418)
  • Add automation to validate PowerShell Core packages using Docker containers. (#5401)
  • Fix the brew update issue in bootstrap script. (#5400)
  • Enable install-powershell.ps1 to update the current running PowerShell Core. (#5429)
  • Add standard set of VSCode workspace setting files. (#5457)
  • Add support for installing PowerShell Core on Amazon Linux via install-powershell.sh. (#5461)
  • Get PowerShellGet and PackageManagement from the PowerShell Gallery. (#5452)
  • Fix Start-PSBuild on WSL if repository was already built on Windows. (#5346)
  • Fix build in VSCode and use an improved version of tasks.json from @rkeithhill. (#5453)
  • Add scripts for signing packages in the release build workflow. (#5463)
  • Documentation and Help Content:
  • Fix the codebase to use the consistent copyright string. (#5210)
  • Add documentation about how to create libpsl and psrp.windows nuget packages. (#5278)
  • Add help strings in PowerShell banner. (#5275)
  • Change all links in README.md to absolute as they are being used in other places outside of GitHub. (#5354)
  • Update instructions to build on VSCode based on pwsh. (#5368)
  • Update FAQ.md about how to use PowerShell Core nuget packages. (#5366)
  • Correct the Fedora documentation (#5384)
  • Add instructions about how to create the PowerShell.Core.Instrumentation nuget package. (#5396)
  • Updated PowerShell to use the latest help package. (#5454)
  • Compliance Work:
  • work is required for Microsoft to continue to sign and release packages from the project as official Microsoft packages.
  • Replace the word hang with something more appropriate and add rules about other terms. (#5213, #5297, #5358)
  • Use simplified names for compliance folders (#5388)
  • Add compliance label description (#5355)
  • Set requestedExecutionLevel to asInvoker for pwsh.exe on Windows. (#5285)
  • Add HighEntropyVA to building pwsh. (#5455)

New in PowerShell 6.0.0 Beta 9 (Oct 25, 2017)

  • Breaking changes:
  • Fix ValueFromRemainingArguments to have consistent behavior between script and C# cmdlets. (#2038) (Thanks @dlwyatt)
  • Remove parameters -importsystemmodules and -psconsoleFile from powershell.exe. (#4995)
  • Removed code to show a GUI prompt for credentials as PowerShell Core prompts in console. (#4995)
  • Remove -ComputerName from Get/Set/Remove-Service. (#5094)
  • Rename the executable name from powershell to pwsh. (#5101)
  • Remove RunspaceConfiguration support. (#4942)
  • Remove -ComputerName support since .NET Core Process.GetProcesses(computer) returns local processes. (#4960)
  • Make -NoTypeInformation the default on Export-Csv and ConvertTo-Csv. (#5164) (Thanks @markekraus)
  • Unify cmdlets with parameter -Encoding to be of type System.Text.Encoding. (#5080)
  • Engine updates and fixes:
  • Fix PowerShell to update the PATH environment variable only if PATH exists. (#5021)
  • Enable support of folders and files with colon in name on Unix. (#4959)
  • Fix detection of whether -LiteralPath was used to suppress wildcard expansion for navigation cmdlets. (#5038)
  • Enable using filesystem from a UNC location. (#4998)
  • Escape trailing backslash when dealing with native command arguments. (#4965)
  • Change location of ModuleAnalysisCache so it isn't shared with Windows PowerShell. (#5133)
  • Put command discovery before scripts for Unix. (#5116)
  • General cmdlet updates and fixes:
  • Correct comma position in SecureStringCommands.resx. (#5033)
  • User Agent of Web Cmdlets now reports the OS platform (#4937)
  • Add the positional parameter attribute to -InputObject for Set-Service. (#5017)
  • Add ValidateNotNullOrEmpty attribute to -UFormat for Get-Date. (#5055)
  • Add -NoNewLine switch for Out-String. (#5056)
  • Improve progress messages written by Web Cmdlets. (#5078)
  • Add verb descriptions and alias prefixes for Get-Verb. (#4746)
  • Fix Get-Content -Raw to not miss the last line feed character. (#5076)
  • Add authentication parameters to Web Cmdlets. (#5052)
  • Add -Authentication that provides three options: Basic, OAuth, and Bearer.
  • Add -Token to get the bearer token for OAuth and Bearer options.
  • Add -AllowUnencryptedAuthentication to bypass authentication that is provided for any transport scheme other than HTTPS.
  • Fix MatchInfoContext clone implementation (#5121)
  • Exclude PSHostProcess cmdlets from Unix platforms. (#5105)
  • Fix Add-Member to fetch resource string correctly. (#5114)
  • Enable Import-Module to be case insensitive. (#5097)
  • Add exports for syslog APIs in libpsl-native. (#5149)
  • Fix Get-ChildItem to not ignore -Depth parameter when using with -Include or -Exclude. (#4985)
  • Added properties UserName, Description, DelayedAutoStart, BinaryPathName and StartupType to the ServiceController objects returned by Get-Service. (#4907)
  • Build and Packaging Improvements:
  • Treat .rtf files as binary so EOL don't get changed. (#5020)
  • Improve the output of tools/installpsh-osx.sh and update Travis-CI to use Ruby 2.3.3. (#5065)
  • Improve Start-PSBootstrap to locate dotnet SDK before installing it. (#5059)
  • Fix the prerequisite check of the MSI package. (#5070)
  • Add release builds that produce symbols for compliance scans. (#5086)
  • Update existing Docker files for the Linux package changes. (#5102)
  • Add compiler switches and replace dangerous function with safer ones. (#5089)
  • Add macOS launcher. (#5138)
  • Replace httpbin.org/response-headers Tests with WebListener. (#5058)
  • Update appimage.sh to reflect the new name pwsh. (#5172)
  • Update the man help file used in packaging. (#5173)
  • Update to use pwsh in macOS launcher. (#5174)
  • Add code to send web hook for Travis-CI daily build. (#5183)
  • Add global.json to pick correct SDK version. (#5118)
  • Update packaging to only package PowerShell binaries when packaging symbols. (#5145)
  • Update Docker files and related due to the name change. (#5156)
  • Code Cleanup:
  • Clean up Json cmdlets. (#5001)
  • Remove code guarded by RELATIONSHIP_SUPPORTED and SUPPORTS_IMULTIVALUEPROPERTYCMDLETPROVIDER, which has never been used. (#5066)
  • Remove PSMI code that has never been used. (#5075)
  • Remove unreachable code for Stop-Job. (#5091)
  • Removed font and codepage handling code that is only applicable to Windows PowerShell. (#4995)
  • Test:
  • Fix a race condition between WebListener and Web Cmdlets tests. (#5035)
  • Add warning to Start-PSPester if Pester module is not found (#5069)
  • Add tests for DSC configuration compilation on Windows. (#5011)
  • Test fixes and code coverage automation fixes. (#5046)
  • Documentation and Help Content:
  • Update Pi demo instructions about installing libunwind8. (#4974)
  • Add links on best practice guidelines in coding guideline. (#4983)
  • Reformat command line help for powershell -help (#4989)
  • Change logo in readme to current black icon. (#5030)
  • Fix RPM package name in README.md. (#5044)
  • Update docs/building/linux.md to reflect the current status of powershell build. (#5068)
  • Add submodule reminder to testing-guidelines.md. (#5061)
  • Update instructions in docs/building/internals.md for building from source. (#5072)
  • Add UserVoice link to Issue Template. (#5100) (Thanks @markekraus)
  • Add Get-WebListenerUrl Based Examples to WebListener README.md. (#4981)
  • Add document about how to create cmdlet with dotnet CLI. (#5117)
  • Update the help text for PowerShell executable with the new name pwsh. (#5182)
  • Add new forward links for PowerShell 6.0.0 help content. (#4978)
  • Fix VSCode launch.json to point to pwsh. (#5189)
  • Add example of how to create .NET Core cmdlet with Visual Studio. (#5096)

New in PowerShell 6.0.0 Beta 8 (Oct 6, 2017)

  • Breaking changes:
  • Changed New-Service to return error when given unsupported -StartupType and fixed Set-Service icon failing test. (#4802)
  • Allow * to be used in registry path for Remove-Item. (#4866)
  • Remove unsupported -ShowWindow switch from Get-Help. (#4903)
  • Fix incorrect position of a parameter which resulted in the args passed as input instead of as args for InvokeScript(). (#4963)
  • Engine updates and fixes:
  • Make calls to void CodeMethod work. (#4850)
  • Get PSVersion and GitCommitId from the ProductVersion attribute of assembly (#4863) (Thanks @iSazonov)
  • Fix powershell -version and built-in help for powershell.exe to align with other native tools. (#4958 & #4931) (Thanks @iSazonov)
  • Load assemblies with Assembly.LoadFrom before Assembly.Load when the file path is given. (#4196)
  • Add a generic file watcher function in HelpersCommon.psm1. (#4775)
  • Update old links and fix broken links in docs/host-powershell/README.md. (#4877)
  • Fix when importing remote modules using version filters (and added tests). (#4900)
  • Enable transcription of native commands on non-Windows platforms. (#4871)
  • Add a new line to CommandNotFoundException error string. (#4934 & #4991)
  • Fix bug where PowerShell would exit with an error within an SSH remoting connection on Linux. (#4993)
  • Fix issues with expression redirected to file. (#4847)
  • General cmdlet updates and fixes:
  • Added Remove-Service to Management module. (#4858)
  • Added functionality to set credentials on Set-Service command. (#4844)
  • Fix Select-String to exclude directories (as opposed to individual files) discovered from -Path. (#4829)
  • Get-Date now supports more argument completion scenarios by adding ArgumentCompletionsAttribute. (#4835)
  • Exclude -ComObject parameter of New-Object on unsupported (currently non-Windows) platforms. (#4922)
  • Updated default ModuleVersion in New-ModuleManifest to 0.0.1 to align with SemVer. (#4842)
  • Add Multipart support to web cmdlets. (#4782)
  • Add -ResponseHeadersVariable to Invoke-RestMethod to enable the capture of response headers. (#4888)
  • Initialize web cmdlets headers dictionary only once. (#4853)
  • Change web cmdlets UserAgent from WindowsPowerShell to PowerShell. (#4914)
  • Build and Packaging Improvements:
  • Make the build output the WiX compilation log if it failed. (#4831)
  • Use a simple file based check in the MSI for the VC++ 2015 redistributables. (#4745) (Thanks @bergmeister)
  • New icon for PowerShell Core. (#4848)
  • Build Powershell Core using the generic RID linux-x64. (#4841)
  • Create generic Linux-x64 packages that are portable to all supported RPM Linux distros (and more similar for Debian based distros). (#4902 & #4994)
  • Suppress the output of building test tools in Compress-TestContent. (#4957)
  • Remove unnecessary error messages from output. (#4954)
  • Update Travis CI script so that PRs can fail due to Pester tests. (#4830)
  • Move release build definition into PowerShell. (#4884)
  • Fix credential scan issues. (#4927 & #4935)
  • Enable security flags in native compiler. (#4933)
  • Add VS 2017 solution file for powershell-win-core. (#4748)
  • Code Cleanup:
  • Remove remainder of Utility.Activities (Workflow code). (#4880)
  • Remove Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.dll. (#4868)
  • Enable auto EOL on Git repo side, fix some character encoding issues. (#4912)
  • Updated EOL for all files to be LF in the repository. (#4943 & #4956)
  • Removed leading whitespace. (#4991)
  • DSC Language:
  • Update version of PSDesiredStateConfiguration in project files to fix complication of MOF files with the Configuration keyword. (#4979)
  • Test:
  • Replace httpbin.org tests with WebListener:
  • headers (#4799)
  • user-agent (#4798)
  • redirect (#4852)
  • encoding (#4869)
  • delay (#4905)
  • gzip & enable deflate (#4948)
  • related changes and fixes (#4920)
  • Port tests for constrained language mode. (#4816)
  • Enable Select-String test from a network path. (#4921) (Thanks @iSazonov)
  • Reformat Measure-Object test. (#4972) (Thanks @iSazonov)
  • Mitigate intermittent failures in access denied tests. (#4788)
  • Fix tests that incorrectly use ShouldBeErrorId. (#4793)
  • Fix a test issue that causes tests to be skipped in Travis CI run (#4891)
  • Skip web cmdlet certificate authentication tests on CentOS and Mac. (#4822)
  • Validate product resource strings against resx files. (#4811 & #4861)
  • Add source files for coverage run. (#4925)
  • Add the UTC offset correctly in tests for CDXML cmdlets. (#4867)
  • Be sure to change PSDefaultParameterValue in the global scope. (#4977 & #4892)
  • Reduce output of Pester for CI. (#4855)
  • Add tests for:
  • Get-Content (#4723)
  • Remoting and Jobs (#4928)
  • Get-Help (#4895)
  • Get-Command -ShowCommandInfo (#4906)
  • Get-Content -Tail (#4790)
  • Get-Module over remoting (#4787)
  • Start/Stop/Suspend/Resume/Restart-Service cmdlets (#4774)
  • WSMan Config provider tests (#4756)
  • CDXML CIM DateTime test (#4796)
  • Documentation and Graphics:
  • Sort .spelling
  • Improve the guideline for performance consideration. (#4824)
  • Add setup steps for MacOS to use PSRP over SSH. (#4872)
  • Instructions to demo PowerShell Core on Raspbian. (#4882)
  • Added instructions to get permission to use PowerShell image assets. (#4938)
  • Added demo for using Windows PowerShell modules. (#4886)

New in PowerShell 6.0.0 Beta 7 (Sep 14, 2017)

  • Breaking change:
  • Fix Get-Content -Delimiter to not include the delimiter in the array elements returned (#3706)
  • Engine updates and fixes:
  • Use stricter rules when unwrapping a PSObject that wraps a COM object (#4614)
  • Remove appended Windows PowerShell PSModulePath on Windows. (#4656)
  • Ensure GetNetworkCredential() returns null if PSCredential has null or empty user name (#4697)
  • Push locals of automatic variables to 'DottedScopes' when dotting script cmdlets (#4709)
  • Fix using module when module has non-terminating errors handled with SilentlyContinue (#4711)
  • Enable use of 'Singleline,Multiline' option in split operator (#4721)
  • Fix error message in ValidateSetAttribute.ValidateElement() (#4722)
  • General cmdlet updates and fixes:
  • Add Meta, Charset, and Transitional parameters to ConvertTo-HTML (#4184)
  • Prevent Test-ModuleManifest from loading unnecessary modules (#4541)
  • Remove AlternateStream code and -Stream from provider cmdlets on non-Windows (#4567)
  • Add explicit ContentType detection to Invoke-RestMethod (#4692)
  • Fix an error on Enter-PSSession exit (#4693)
  • Add -WhatIf switch to Start-Process cmdlet (#4735)
  • Remove double spaces in .cs, .ps1, and .resx files (#4741 & #4743)
  • Replace 'Windows PowerShell' with 'PowerShell' in resx files (#4758)
  • Build and Packaging Improvements:
  • Refactor MSBuild project files to get PowerShell version from git tag (#4182)
  • Create a single package for each Windows supported architecture (x86 and amd64) (#4540)
  • Set the default windows RID to win7- (#4701)
  • Enable cross-compiling for Raspberry-PI arm32 (#4742)
  • Fix macOS brew reinstall command (#4627)
  • Improvements to the Travis-CI script (#4689, #4731, #4807)
  • Update OpenSUSE docker image to 42.2 (#4737)
  • Confirm Start-PSPackage produces a package (#4795)
  • Code Cleanup
  • Remove part of the Workflow code (#4777)
  • Clean up CORECLR preprocessor directives in TraceSource (#4684)
  • Test:
  • Add test WebListener module and tests for Web Cmdlet Certificate Authentication (#4622)
  • Move WebCmdlets HTTPS tests to WebListener (#4733)
  • Replace httpbin.org/get tests With WebListener (#4738)
  • Use -PassThru on Pester tests to reliably catch failures (#4644)
  • Display the same number of tests regardless of platform (#4728)
  • Improve comparison of code coverage values for a file (#4764)
  • Silence PSSessionConfiguration test warning messages in the log (#4794)
  • Add tests for:
  • Get-Service (#4773)
  • Set-Service and New-Service (#4785)
  • Trace-Command (#4288)
  • StaticParameter (#4779)
  • Test-Wsman (#4771)
  • New-Object -ComObject (#4776)
  • ProxyCommand APIs (#4791)
  • Disable tests:
  • 'VC++ Redistributable'(#4673 & #4729)
  • "Test 01. Standard Property test - all properties ()" due to missing CsPhysicallyInstalledMemory (#4763)
  • New-Service failing test (#4806)
  • Documentation:
  • Update WritingPesterTests.md to recommend ShouldBeErrorId (#4637)
  • Clarify the Pull Request process, roles, and responsibilities (#4710)
  • Add absolute URLs in the issue template and pull request template (#4718)
  • Add new approved Build and Deploy verbs (#4725)
  • Update using-vscode.md to use the new exe path (#4736)
  • Update coding guidelines to make it more concrete and useful in a review process (#4754)

New in PowerShell 6.0.0 Beta 6 (Aug 27, 2017)

  • Breaking change:
  • Make invalid argument error messages for -File and -Command consistent and make exit codes consistent with Unix standards (#4573)
  • Engine updates and fixes:
  • Make resource loading to work with PowerShell SxS installation (#4139)
  • Add missing assemblies to TPA list to make Pwrshplughin.dll work (#4502)
  • Make sure running powershell starts an instance of the current version of PowerShell. (#4481)
  • Make sure we only use Unicode output by default on Nano and IoT systems (#4074)
  • Enable powershell -WindowStyle to work on Windows. (#4573)
  • Enable enumeration of COM collections. (#4553)
  • General cmdlet updates and fixes:
  • Fix Web CmdLets -SkipHeaderValidation to work with non-standard User-Agent headers. (#4479 & #4512) (Thanks @markekraus)
  • Add Certificate authentication support for Web CmdLets. (#4646) (Thanks @markekraus)
  • Add support for content headers to Web CmdLets. (#4494 & #4640) (Thanks @markekraus)
  • Add support for converting enums to string (#4318) (Thanks @KirkMunro)
  • Ignore casing when binding PSReadline KeyHandler functions (#4300) (Thanks @oising)
  • Fix Unblock-File for the case of a read-only file. (#4395) (Thanks @iSazonov)
  • Use supported API to set Central Access Policy ID (CAPID) in SACL. (#4496)
  • Make Start-Trace support paths that require escaping in the underlying APIs (#3863)
  • Removing #if CORECLR enabled, Enable-PSRemoting and Disable-PSRemoting (#2671)
  • Enable WSManCredSSP cmdlets and add tests. (#4336)
  • Use .NET Core's implementation for ShellExecute. (#4523)
  • Fix SSH Remoting handling of KeyFileParameter when the path must be quoted. (#4529)
  • Make Web CmdLets use HTML meta charset attribute value, if present (#4338)
  • Move to .NET Core 2.0 final (#4603)
  • Build/test and code cleanup:
  • Add Amazon Linux Docker image and enable related tests. (#4393) (Thanks @DarwinJS)
  • Make MSI verify pre-requisites are installed. (#4602) (Thank @bergmeister)
  • Fixed formatting issues in build files. (#4630) (Thanks @iSazonov)
  • Make sure install-powershell.sh installs latest powershell on macOS, even if an old version is cached in brew. (#4509) (Thanks @richardszalay for reporting.)
  • Fixes install scripts issue for macOS. (#4631) (Thanks @DarwinJS)
  • Many stability improvements to our nightly code coverage automation. (#4313 & #4550)
  • Remove hash validation from nanoserver-insider Docker file, due to frequent changes. (#4498)
  • Update to make Travis-CI daily build badge more reliable. (#4522)
  • Remove unused build files, build code, and product code. (#4532, #4580, #4590, #4589, #4588, #4587, #4586, #4583, #4582, #4581)
  • Add additional acceptance tests for PowerShellGet. (#4531)
  • Only publish a NuGet of the full PowerShell core package on daily builds and not merge. (#4517)
  • Update nanoserver-insider Docker file due to breaking changes in the base image. (#4555)
  • Cleanup engine tests (#4551)
  • Fix intermittent failures in filesystem tests (#4566)
  • Only allow packaging of powershell, if it was built from a repo at the root of the file system named powershell. (#4569 & #4600)
  • Update Format-Hex test cases to use -TestCase instead of foreach loops. (#3800)
  • Added functionality to get code coverage for a single file locally. (#4556)
  • Add tests for:
  • New-WinEvent. (#4384)
  • tab completion. (#4560)
  • various types. (#4503)
  • CDXML CmdLets. (#4537)
  • Documentation:
  • Added Ilya (@iSazonov) as a Maintainer. (#4365)
  • Grammar fix to the Pull Request Guide. (#4322)
  • Added a CodeOwner file. (#4565 & #4597)
  • Cleanup #if CORECLR code:
  • PowerShell 6.0 will be exclusively built on top of CoreCLR, so we are removing a large amount of code that's built only for FullCLR.

New in PowerShell 6.0.0 Beta 5 (Aug 4, 2017)

  • Breaking changes:
  • Remove the *-Counter cmdlets in Microsoft.PowerShell.Diagnostics due to the use of unsupported APIs until a better solution is found. (#4303)
  • Remove the Microsoft.PowerShell.LocalAccounts due to the use of unsupported APIs until a better solution is found. (#4302)
  • Engine updates and fixes:
  • Fix the issue where PowerShell Core wasn't working on Windows 7 or Windows Server 2008 R2/2012 (non-R2). (#4463)
  • ValidateSetAttribute enhancement: support set values to be dynamically generated from a custom ValidateSetValueGenerator. (#3784)
  • Disable breaking into debugger on Ctrl+Break when running non-interactively. (#4283)
  • Give error instead of crashing if WSMan client library is not available. (#4387)
  • Allow passing $true/$false as a parameter to scripts using powershell.exe -File. (#4178)
  • Enable DataRow/DataRowView adapters in PowerShell Core to fix an issue with DataTable usage. (#4258)
  • Fix an issue where PowerShell class static methods were being shared across Runspaces/SessionStates. (#4209)
  • Fix array expression to not return null or throw error. (#4296)
  • Fixes a CIM deserialization bug where corrupted CIM classes were instantiating non-CIM types. (#4234)
  • Improve error message when HelpMessage property of ParameterAttribute is set to empty string. (#4334)
  • Make ShellExecuteEx run in a STA thread. (#4362)
  • General cmdlet updates and fixes:
  • Add -SkipHeaderValidation switch to Invoke-WebRequest and Invoke-RestMethod to support adding headers without validating the header value. (#4085)
  • Add support for Invoke-Item -Path <folder>. (#4262)
  • Fix ConvertTo-Html output when using a single column header. (#4276)
  • Fix output of Length for FileInfo when using Format-List. (#4437)
  • Fix an issue in implicit remoting where restricted sessions couldn't use Get-FormatData –PowerShellVersion. (#4222)
  • Fix an issue where Register-PSSessionConfiguration fails if SessionConfig folder doesn't exist. (#4271)
  • Installer updates:
  • Create script to install latest PowerShell from Microsoft package repositories (or Homebrew) on non-Windows platforms. (#3608)
  • Enable MSI upgrades rather than a side-by-side install. (#4259)
  • Add a checkbox to open PowerShell after the Windows MSI installer has finished. (#4203)
  • Add Amazon Linux compatibility to install-powershell.sh. (#4360)
  • Add ability to package PowerShell Core as a NuGet package. (#4363)
  • Build/test and code cleanup:
  • Add build check for MFC for Visual C++ during Windows builds.
  • This fixes a long-standing (and very frustrating!) issue with missing build dependencies! (#4185)
  • Move building Windows PSRP binary out of Start-PSBuild.
  • Now Start-PSBuild doesn't build PSRP binary on windows. Instead, we consume the PSRP binary from a NuGet package. (#4335)
  • Add tests for built-in type accelerators. (#4230)
  • Increase code coverage of Get-ChildItem on file system. (#4342)
  • Increase test coverage for Rename-Item and Move-Item. (#4329)
  • Add test coverage for Registry provider. (#4354)
  • Fix warnings and errors thrown by PSScriptAnalyzer. (#4261)
  • Fix regressions that cause implicit remoting tests to fail. (#4326)
  • Disable legacy UTC and SQM Windows telemetry by enclosing the code in '#if LEGACYTELEMETRY'. (#4190)
  • Cleanup #if CORECLR code:
  • PowerShell 6.0 will be exclusively built on top of CoreCLR, so we are removing a large amount of code that's built only for FullCLR.

New in PowerShell 6.0.0 Beta 4 (Jul 14, 2017)

  • Add Windows PowerShell PSModulePath by default on Windows. (#4132)
  • Move PowerShell to 2.0.0-preview3-25426-01 and using the .NET CLI version 2.0.0-preview2-006502. (#4144)
  • Engine updates and fixes:
  • Performance improvement in PSReadline by minimizing writing ANSI escape sequences. (#4110)
  • Implement Unicode escape parsing so that users can use Unicode characters as arguments, strings or variable names. (#3958)
  • Script names or full paths can have commas. (#4136)
  • Added semver as a type accelerator for System.Management.Automation.SemanticVersion. (#4142)
  • Close eventLogSession and EventLogReader to unlock an ETL log. (#4034)
  • General cmdlet updates and fixes:
  • Move-Item cmdlet honors -Include, -Exclude, and -Filter parameters. (#3878)
  • Add a parameter to Get-ChildItem called -FollowSymlink that traverses symlinks on demand, with checks for link loops. (#4020)
  • Change New-ModuleManifest encoding to UTF8NoBOM on non-Windows platforms. (#3940)
  • Get-AuthenticodeSignature cmdlets can now get file signature timestamp. (#4061)
  • Add tab completion for Export-Counter -FileFormat parameter. (#3856)
  • Fixed Import-Module on non-Windows platforms so that users can import modules with NestedModules and RootModules. (#4010)
  • Close FileStream opened by Get-FileHash. (#4175)
  • Remoting:
  • Fixed hang when the SSH client abruptly terminates. (#4123)

New in PowerShell 6.0.0 Beta 3 (Jun 23, 2017)

  • Breaking changes:
  • Remove the BuildVersion property from $PSVersionTable. This property was strongly tied to the Windows build version. Instead, we recommend that you use GitCommitId to retrieve the exact build version of PowerShell Core. (#3877)
  • Change positional parameter for powershell.exe from -Command to -File. This fixes the usage of #! (aka as a shebang) in PowerShell scripts that are being executed from non-PowerShell shells on non-Windows platforms.
  • This also means that you can now do things like powershell foo.ps1 or powershell fooScript without specifying -File. However, this change now requires that you explicitly specify -c or -Command when trying to do things like powershell.exe Get-Command. (#4019)
  • Remove ClrVersion property from $PSVersionTable. This property is largely irrelevant for .NET Core, and was only preserved in .NET Core for specific legacy purposes that are inapplicable to PowerShell. (#4027)
  • Engine updates and fixes:
  • Add support to probe and load assemblies from GAC on Windows platform. This means that you can now load Windows PowerShell modules with assembly dependencies which reside in the GAC. If you're interested in running your traditional Windows PowerShell scripts and cmdlets using the power of .NET Standard 2.0, try adding your Windows PowerShell module directories to your PowerShell Core $PSModulePath. (E.g. $env:PSModulePath += ';C:Program FilesWindowsPowerShellModules;C:WINDOWSsystem32WindowsPowerShellv1.0Modules') Even if the module isn't owned by the PowerShell Team, please tell us what works and what doesn't by leaving a comment in issue #4062! (#3981)
  • Enhance type inference in tab completion based on runtime variable values. (#2744). This enables tab completion in situations like: $p = Get-Process; $p | Foreach-Object Prio<tab>
  • Add GitCommitId to PowerShell Core banner. Now you don't have to run $PSVersionTable as soon as you start PowerShell to get the version! (#3916) (Thanks to @iSazonov!)
  • Fix a bug in tab completion to make native.exe --<tab> call into native completer. (#3633) (Thanks to @powercode!)
  • Fix PowerShell Core to allow the use of long paths that are more than 260 characters. (#3960)
  • Fix ConsoleHost to honor NoEcho on Unix platforms. (#3801)
  • Fix transcription to not stop when a Runspace is closed during the transcription. (#3896)
  • General cmdlet updates and fixes:
  • Enable Send-MailMessage in PowerShell Core. (#3869)
  • Fix Get-Help to support case insensitive pattern matching on Unix platforms. (#3852)
  • Fix tab completion on Get-Help for about_* topics. (#4014)
  • Fix PSReadline to work in Windows Server Core container image. (#3937)
  • Fix Import-Module to honour ScriptsToProcess when -Version is specified. (#3897)
  • Strip authorization header on redirects with web cmdlets. (#3885)
  • Start-Sleep: add the alias ms to the parameter -Milliseconds. (#4039)
  • Developer experience:
  • Make hosting PowerShell Core in your own .NET applications much easier by refactoring PowerShell Core to use the default CoreCLR loader. (#3903)
  • Update Add-Type to support CSharpVersion7. (#3933)

New in PowerShell 6.0.0 Beta 2 (Jun 6, 2017)

  • Support backgrounding of pipelines with ampersand (&) (#3360):
  • Putting & at the end of a pipeline will cause the pipeline to be run as a PowerShell job.
  • When a pipeline is backgrounded, a job object is returned.
  • Once the pipeline is running as a job, all of the standard *-Job cmdlets can be used to manage the job.
  • Variables (ignoring process-specific variables) used in the pipeline are automatically copied to the job so Copy-Item $foo $bar & just works.
  • The job is also run in the current directory instead of the user's home directory.
  • For more information about PowerShell jobs, see about_Jobs.
  • Engine updates and fixes:
  • Crossgen more of the .NET Core assemblies to improve PowerShell Core startup time. (#3787)
  • Enable comparison between a SemanticVersion instance and a Version instance that is constructed only with Major and Minor version values.
  • This will fix some cases where PowerShell Core was failing to import older Windows PowerShell modules. (#3793)
  • General cmdlet updates and fixes:
  • Support Link header pagination in web cmdlets (#3828)
  • For Invoke-WebRequest, when the response includes a Link header we create a RelationLink property as a Dictionary representing the URLs and rel attributes and ensure the URLs are absolute to make it easier for the developer to use
  • For Invoke-RestMethod, when the response includes a Link header we expose a -FollowRelLink switch to automatically follow next rel links until they no longer exist or once we hit the optional -MaximumFollowRelLink parameter value
  • Update Get-ChildItem to be more in line with the way that the *nix ls -R and the Windows DIR /S native commands handle symbolic links to directories during a recursive search.
  • Now, Get-ChildItem returns the symbolic links it encountered during the search, but it won't search the directories those links target. (#3780)
  • Fix Get-ChildItem to continue enumeration after throwing an error in the middle of a set of items.
  • This fixes some issues where inaccessible directories or files would halt execution of Get-ChildItem. (#3806)
  • Fix ConvertFrom-Json to deserialize an array of strings from the pipeline that together construct a complete JSON string.
  • This fixes some cases where newlines would break JSON parsing. (#3823)
  • Enable Get-TimeZone for macOS/Linux. (#3735)
  • Change to not expose unsupported aliases and cmdlets on macOS/Linux. (#3595) (Thanks to @iSazonov!)
  • Fix Invoke-Item to accept a file path that includes spaces on macOS/Linux. (#3850)
  • Fix an issue where PSReadline was not rendering multi-line prompts correctly on macOS/Linux. (#3867)
  • Fix an issue where PSReadline was not working on Nano Server. (#3815)

New in PowerShell 6.0.0 Beta 1 (May 10, 2017)

  • Move to .NET Core 2.0 (.NET Standard 2.0 support):
  • PowerShell Core has moved to using .NET Core 2.0 so that we can leverage all the benefits of .NET Standard 2.0 (#3556). To learn more about .NET Standard 2.0, there's some great starter content on Youtube, on the .NET blog, and on GitHub. We'll also have more content soon in our repository documentation (which will eventually make its way to official documentation). In a nutshell, .NET Standard 2.0 allows us to have universal, portable modules between Windows PowerShell (which uses the full .NET Framework) and PowerShell Core (which uses .NET Core).
  • Many modules and cmdlets that didn't work in the past may now work on .NET Core, so import your favorite modules and tell us what does and doesn't work in our GitHub Issues!
  • Telemetry:
  • For the first beta of PowerShell Core 6.0, telemetry has been to the console host to report two values (#3620): the OS platform ($PSVersionTable.OSDescription), the exact version of PowerShell ($PSVersionTable.GitCommitId)
  • If you want to opt-out of this telemetry, simply delete $PSHomeDELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY. Even before the first run of Powershell, deleting this file will bypass all telemetry. In the future, we plan on also enabling a configuration value for whatever is approved as part of RFC0015. We also plan on exposing this telemetry data (as well as whatever insights we leverage from the telemetry) in our community dashboard.
  • Engine updates and fixes:
  • Add support for native command globbing on Unix platforms. (#3643). This means you can now use wildcards with native binaries/commands (e.g. ls *.txt).
  • Fix PowerShell Core to find help content from $PSHome instead of the Windows PowerShell base directory. (#3528). This should fix issues where about_* topics couldn't be found on Unix platforms.
  • Add the OS entry to $PSVersionTable. (#3654)
  • Arrange the display of $PSVersionTable entries in the following way: (#3562)
  • PSVersion
  • PSEdition
  • alphabetical order for rest entries based on the keys
  • Make PowerShell Core more resilient when being used with an account that doesn't have some key environment variables. (#3437)
  • Update PowerShell Core to accept the -i switch to indicate an interactive shell. (#3558). This will help when using PowerShell as a default shell on Unix platforms.
  • Relax the PowerShell SemanticVersion constructors to not require 'minor' and 'patch' portions of a semantic version name. (#3696)
  • Improve performance to security checks when group policies are in effect for ExecutionPolicy. (#2588)
  • Fix code in PowerShell to use IntPtr(-1) for INVALID_HANDLE_VALUE instead of IntPtr.Zero. (#3544)
  • General cmdlet updates and fixes:
  • Change the default encoding and OEM encoding used in PowerShell Core to be compatible with Windows PowerShell. (#3467) (Thanks to @iSazonov!)
  • Fix a bug in Import-Module to avoid incorrect cyclic dependency detection. (#3594)
  • Fix New-ModuleManifest to correctly check if a URI string is well formed. (#3631)
  • Filesystem-specific updates and fixes:
  • Use operating system calls to determine whether two paths refer to the same file in file system operations. (#3441). This will fix issues where case-sensitive file paths were being treated as case-insensitive on Unix platforms.
  • Fix New-Item to allow creating symbolic links to file/directory targets and even a non-existent target. (#3509)
  • Change the behavior of Remove-Item on a symbolic link to only removing the link itself. (#3637)
  • Use better error message when New-Item fails to create a symbolic link because the specified link path points to an existing item. (#3703)
  • Change Get-ChildItem to list the content of a link to a directory on Unix platforms. (#3697)
  • Fix Rename-Item to allow Unix globbing patterns in paths. (#3661)
  • Interactive fixes:
  • Add Hashtable tab completion for -Property of Select-Object. (#3625)
  • Fix tab completion with @{<tab> to avoid crash in PSReadline. (#3626)
  • Use <id> - <name> as ToolTip and ListItemText when tab completing process ID. (#3664)
  • Remoting fixes:
  • Update PowerShell SSH remoting to handle multi-line error messages from OpenSSH client. (#3612)
  • Add -Port parameter to New-PSSession to create PowerShell SSH remote sessions on non-standard (non-22) ports. (#3499)
  • API Updates:
  • Add the public property ValidRootDrives to ValidateDriveAttribute to make it easy to discover the attribute state via ParameterMetadata or PSVariable objects. (#3510)
  • Improve error messages for ValidateCountAttribute. (#3656)
  • Update ValidatePatternAttribute, ValidateSetAttribute and ValidateScriptAttribute to allow users to more easily specify customized error messages. (#2728)
  • Windows 7 Packages:
  • Windows 7 packages were not produced for this release due to a downlevel API set issue (#3747) that we are working to resolve. Until it is fixed, users who wish to run PowerShell Core on Windows 7 systems can use the Alpha.18 release.

New in PowerShell 5.1 (Apr 7, 2017)

  • Some of the new and updated features in this release include:
  • Constrained file copying to/from JEA endpoints
  • JEA support for Group Managed Service Accounts and Conditional Access Policies
  • PowerShell console support for VT100 and redirecting stdin with interactive input
  • Support for catalog signed modules in PowerShell Get
  • Specifying which module version to load in a script
  • Package Management cmdlet support for proxy servers
  • PowerShellGet cmdlet support for proxy servers
  • Improvements in PowerShell Script Debugging
  • Improvements in Desired State Configuration (DSC)
  • Improved PowerShell usage auditing using Transcription and Logging
  • New and updated cmdlets based on community feedback

New in PowerShell 6.0.0 Alpha 18 (Apr 7, 2017)

  • Progress Bar:
  • We made a number of fixes to the progress bar rendering and the ProgressRecord object that improved cmdlet performance and fixed some rendering bugs on non-Windows platforms
  • Fix a bug that caused the progress bar to drift on Unix platforms. (#3289)
  • Improve the performance of writing progress records. (#2822)
  • Fix the progress bar rendering on Unix platforms. (#3362) (#3453)
  • Reuse ProgressRecord in Web Cmdlets to reduce the GC overhead. (#3411)
  • Cmdlet updates:
  • Use ShellExecute with Start-Process, Invoke-Item, and Get-Help -Online so that those cmdlets use standard shell associations to open a file/URI
  • This means you Get-Help -Online will always use your default browser, and Start-Process/Invoke-Item can open any file or path with a handler
  • Note: there are still some problems with STA threads.) (#3281, partially fixes #2969)
  • Add -Extension and -LeafBase switches to Split-Path so that you can split paths between the filename extension and the rest of the filename. (#2721)
  • Implement Format-Hex in C# along with some behavioral changes to multiple parameters and the pipeline. (#3320)
  • Add -NoProxy to web cmdlets so that they ignore the system-wide proxy setting. (#3447)
  • Fix Out-Default -Transcript to properly revert out of the TranscribeOnly state, so that further output can be displayed on Console. (#3436)
  • Fix Get-Help to not return multiple instances of the same help file. (#3410)
  • Interactive fixes:
  • Enable argument auto-completion for -ExcludeProperty and -ExpandProperty of Select-Object. (#3443)
  • Fix a tab completion bug that prevented Import-Module -n<tab> from working. (#1345)
  • Cross-platform fixes:
  • Ignore the -ExecutionPolicy switch when running PowerShell on non-Windows platforms because script signing is not currently supported. (#3481)
  • Standardize the casing of the PSModulePath environment variable. (#3255)
  • JEA fixes:
  • Fix the JEA transcription to include the endpoint configuration name in the transcript header. (#2890)
  • Fix Get-Help in a JEA session. (#2988)

New in PowerShell 6.0.0 Alpha 17 (Mar 10, 2017)

  • We now support remote step-in debugging for Invoke-Command -ComputerName. (#3015)
  • Use prettier formatter with ConvertTo-Json output. (#2787)
  • Port *-CmsMessage and Get-PfxCertificate cmdlets to Powershell Core. (#3224)
  • powershell -version now returns version information for PowerShell Core. (#3115)
  • Add the -TimeOut parameter to Test-Connection. (#2492)
  • Add ShouldProcess support to New-FileCatalog and Test-FileCatalog (fixes -WhatIf and -Confirm). (#3074)
  • Fix Test-ModuleManifest to normalize paths correctly before validating.
  • This fixes some problems when using Publish-Module on non-Windows platforms. (#3097)
  • Remove the AliasProperty Count defined for System.Array.
  • This removes the extraneous Count property on some ConvertFrom-Json output. (#3231)
  • Port Import-PowerShellDatafile from PowerShell script to C#. (#2750)
  • Add -CustomMethod paramter to web cmdlets to allow for non-standard method verbs. (#3142)
  • Fix web cmdlets to include the HTTP response in the exception when the response status code is not success. (#3201)
  • Expose a process' parent process by adding the CodeProperty Parent to System.Diagnostics.Process. (#2850)
  • Fix crash when converting a recursive array to a bool. (#3208)
  • Fix casting single element array to a generic collection. (#3170)
  • Allow profile directory creation failures for Service Account scenarios. (#3244)
  • Allow Windows' reserved device names (e.g. CON, PRN, AUX, etc.) to be used on non-Windows platforms. (#3252)
  • Remove duplicate type definitions when reusing an InitialSessionState object to create another Runspace. (#3141)
  • Fix PSModuleInfo.CaptureLocals to not do ValidateAttribute check when capturing existing variables from the caller's scope. (#3149)
  • Fix a race bug in WSMan command plugin instance close operation. (#3203)
  • Fix a problem where newly mounted volumes aren't available to modules that have already been loaded. (#3034)
  • Remove year from PowerShell copyright banner at startup. (#3204)
  • Fixed spelling for the property name BiosSerialNumber for Get-ComputerInfo

New in PowerShell 6.0.0 Alpha 16 (Feb 16, 2017)

  • Here are the major changes:
  • Add WindowsUBR property to Get-ComputerInfo result
  • Cache padding strings to speed up formatting a little
  • Add alias Path to the -FilePath parameter of Out-File
  • Fix the -InFile parameter of Invoke-WebRequest
  • Add the default help content to powershell core
  • Speed up Add-Type by crossgen'ing its dependency assemblies
  • Convert Get-FileHash from script to C# implementation
  • Fix lock contention when compiling the code to run in interpreter
  • Avoid going through WinRM remoting stack when using Get-ComputerInfo locally
  • Fix native parameter auto-completion for tokens that begin with a single Dash
  • Fix parser error reporting for incompleted input to allow defining class in interactive host
  • Add the RoleCapabilityFiles keyword for JEA support on Windows

New in PowerShell 6.0.0 Alpha 15 (Jan 25, 2017)

  • Use parens around file length for offline files
  • Fix issues with the Windows console mode (terminal emulation) and native executables
  • Fix error recovery with using module
  • Report PlatformNotSupported on IoT for Get/Import/Export-Counter
  • Add -Group parameter to Get-Verb
  • Use MB instead of KB for memory columns of Get-Process
  • Add new escape character for ESC: `e
  • Fix a small parsing issue with a here string
  • Improve tab completion of types that use type accelerators
  • Invoke-RestMethod improvements for non-XML non-JSON input
  • PSRP remoting now works on CentOS without addition setup

New in PowerShell 6.0.0 Alpha 14 (Jan 21, 2017)

  • Here are the major changes:
  • Moved to .NET Core 1.1
  • Add Windows performance counter cmdlets to PowerShell Core
  • Fix try/catch to choose the more specific exception handler
  • Fix issue reloading modules that define PowerShell classes
  • Add ValidateNotNullOrEmpty to approximately 15 parameters
  • New-TemporaryFile and New-Guid rewritten in C#
  • Enable client side PSRP on non-Windows platforms
  • Split-Path now works with UNC roots
  • Implicitly convert value assigned to XML property to string
  • Updates to Invoke-Command parameters when using SSH remoting transport
  • Fix Invoke-WebRequest with non-text responses on non-Windows platforms
  • Write-Progress performance improvement from alpha13 reverted because it introduced crash with a race condition

New in PowerShell 6.0.0 Alpha 13 (Nov 23, 2016)

  • With 99 non-merge commits since v6.0.0-alpha.12, here are the major changes:
  • Fix NullReferenceException in binder after turning on constrained language mode
  • Enable Invoke-WebRequest and Invoke-RestMethod to not validate the HTTPS certificate of the server if required.
  • Enable binder debug logging in PowerShell Core
  • Add parameters '-Top' and '-Bottom' to Sort-Object or Top/Bottom N sort
  • Enable Update-Help and Save-Help on Unix platforms
  • Update the formatter for 'System.Diagnostics.Process' to not show the 'Handles' column
  • Improve Write-Progress performance by adding timer to update a progress pane every 100 ms
  • Enable correct table width calculations with ANSI escape sequences on Unix
  • Fix background jobs for Unix and Windows
  • Add Get-Uptime to Microsoft.PowerShell.Utility
  • Make Out-Null as fast as '> $null'
  • Add Dockerfile for windowsservercore and NanoServer
  • Fix WebRequest failure to handle missing ContentType in response header
  • Make Write-Host fast by delay initializing some properties in InformationRecord
  • Ensure PowerShell Core adds an initial '/' rooted drive on Unix platforms
  • Enable streaming behavior for native command execution in pipeline, so that 'ping | grep' doesn't block
  • Make Write-Information accept objects from pipeline
  • Fixes deprecated syscall issue on macOS 10.12
  • Fix code errors found by the static analysis using PVS-Studio
  • Add support to W3C Extended Log File Format in Import-Csv
  • Guard against ReflectionTypeLoadException in type name auto-completion
  • Update build scripts to support win7-x86 runtime
  • Move PackageManagement code/test to oneget.org

New in PowerShell 6.0.0 Alpha 12 (Nov 4, 2016)

  • With 71 non-merge commits since v6.0.0-alpha.11, here are the major changes:
  • Fix Get-ChildItem -Recurse -ErrorAction Ignore to ignore additional errors
  • Don't block pipeline when running Windows exes
  • Fix for PowerShell SSH remoting with recent Win32-OpenSSH change.
  • Select-Object with -ExcludeProperty now implies -Property * if -Property is not specified.
  • Adding ValidateNotNullOrEmpty to -Name parameter of Get-Alias
  • Enable Implicit remoting commands in PowerShell Core
  • Fix GetParentProcess() to replace an expensive WMI query with Win32 API calls
  • Fix Set-Content failure to create a file in PSDrive under certain conditions.
  • Adding ValidateNotNullOrEmpty to -Name parameter of Get-Service
  • Adding support in Get-WinEvent -FilterHashtable
  • Adding WindowsVersion to Get-ComputerInfo
  • Remove the unnecessary use of lock in PseudoParameterBinder to avoid deadlock
  • Refactor Get-WinEvent to use StringBuilder for XPath query construction
  • Clean up and fix error handling of libpsl-native
  • Exclude Registry and Certificate providers from UNIX PS
  • Update PowerShell Core to consume DotNet Core preview1-24530-04

New in PowerShell 6.0.0 Alpha 11 (Oct 18, 2016)

  • With 108 non-merge commits since v6.0.0-alpha.10, here are the major changes:
  • Add '-Title' to 'Get-Credential' and unify the prompt experience
  • Update dependency list for PowerShell Core on Linux and OS X
  • Fix 'powershell -Command -' to not hang and to not ignore the last command
  • Fix binary operator tab completion
  • Enable 'ConvertTo-Html' in PowerShell Core
  • Remove most Maximum* capacity variables
  • Fix 'Get-ChildItem -Hidden' to work on system hidden files on Windows
  • Fix 'JsonConfigFileAccessor' to handle corrupted 'PowerShellProperties.json' and defer creating the user setting directory until a write request comes
  • Fix variable assignment to not overwrite readonly variables
  • Fix 'Get-WinEvent -FilterHashtable' to work with named fields in UserData of event logs
  • Fix 'Get-Help -Online' in PowerShell Core on Windows
  • Spelling/grammar fixes

New in PowerShell 6.0.0.10 Alpha 10 (Sep 16, 2016)

  • With 311 non-merge commits since v6.0.0-alpha.9, here are the major changes:
  • Fix passing escaped double quoted spaces to native executables
  • Add Dockerfiles to build each Linux distribution
  • config/PowerShell capitalization bug fixed
  • Fix crash on Windows 7
  • Fix remote debugging on Windows client
  • Fix multi-line input with redirected stdin
  • Add PowerShell to /etc/shells on installation
  • Fix Install-Module version comparison bug
  • Spelling fixes

New in PowerShell 6.0.0 Alpha 9 (Aug 18, 2016)

  • Better man page
  • Added third-party and proprietary licenses
  • Added license to MSI

New in PowerShell 6.0.0 Alpha 8 (Aug 18, 2016)

  • PowerSell packages pre-compiled with CrossGen
  • Get-Help content added
  • Get-Help null reference exception fixed
  • Ubuntu 16.04 support added
  • PSReadLine long prompt bug fixed
  • Default terminal colors now respected
  • Semantic Version support added
  • env: fixed for case-sensitive variables
  • Added JSON config files to hold some settings
  • cd with no arguments now behaves as cd ~
  • ConvertFrom-Json fixed for multiple lines
  • Windows branding removed
  • NET CoreCLR Runtime patched to version 1.0.4
  • Write-Host with unknown hostname bug fixed
  • powershell man-page added to package
  • Get-PSDrive ported to report free space
  • Windows 2012 R2 / Windows 8.1 remoting enabled

New in PowerShell 6.0.0 Alpha 7 (Aug 18, 2016)

  • Invoke-WebRequest and Invoke-RestMethod ported to PowerShell Core
  • Set PSReadLine default edit mode to Emacs on Linux
  • IsCore variable renamed to IsCoreCLR
  • LocalAccounts and other Windows-only assemblies excluded on Linux
  • PowerShellGet fully ported to Linux
  • PackageManagement NuGet provider ported
  • Write-Progress ported to Linux
  • Get-Process -IncludeUserName ported
  • Enumerating symlinks to folders fixed
  • Bugs around administrator permissions fixed on Linux
  • ConvertFrom-Json multi-line bug fixed
  • Execution policies fixed on Windows
  • TimeZone cmdlets added back; excluded from Linux
  • FileCatalog cmdlets add back for Windows
  • Get-ComputerInfo cmdlet added back for Windows

New in PowerShell 5.0 (Jun 9, 2016)

  • Windows PowerShell
  • Just Enough Administration (JEA)
  • Windows PowerShell Desired State Configuration (DSC)
  • Windows PowerShell Integrated Scripting Environment (ISE)
  • Windows PowerShell Web Services (Management OData IIS Extension)
  • Windows Remote Management (WinRM)
  • Windows Management Instrumentation (WMI)

New in PowerShell 4.0 Preview (Jul 8, 2013)

  • Windows Management Framework (WMF) 4.0 Preview contains functionality that has been updated from WMF 3.0, and is available for installation on Windows 7 with Service Pack 1 (SP1), Windows Server 2008 R2 with SP1, and Windows Server 2012. WMF 4.0 Preview contains updated versions of the following features:
  • Windows PowerShell
  • Windows PowerShell ISE
  • Windows PowerShell Web Services (Management OData IIS Extension)
  • Windows Remote Management (WinRM)
  • Windows Management Instrumentation (WMI)
  • WMF 4.0 includes a new feature, also available in the Preview:
  • Windows PowerShell Desired State Configuration (DSC)
  • To use this updated management infrastructure to manage Windows 7 SP1, Windows Server 2008 R2 SP1, and Windows Server 2012, Windows Management Framework 4.0 must be installed on computers that are running the older operating systems. Windows Management Framework 4.0 Preview cannot be installed on Windows 8.

New in PowerShell 3.0 (Jul 8, 2013)

  • Windows Management Framework (WMF) 3.0 makes some updated management functionality from Windows Server 2012 available for installation on Windows 7 SP1, Windows Server 2008 R2 SP1, and Windows Server 2008 SP2. WMF 3.0 contains Windows Server 2012 versions of the following features:
  • Windows PowerShell 3.0
  • Windows Remote Management (WinRM) 3.0
  • Windows Management Instrumentation (WMI)
  • Management OData IIS Extension
  • Server Manager CIM Provider