{"id":17532,"date":"2019-03-28T10:43:03","date_gmt":"2019-03-28T18:43:03","guid":{"rendered":"http:\/\/devblogs.microsoft.com\/powershell\/?p=17532"},"modified":"2019-11-18T19:02:47","modified_gmt":"2019-11-19T03:02:47","slug":"general-availability-of-powershell-core-6-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/general-availability-of-powershell-core-6-2\/","title":{"rendered":"General Availability of PowerShell Core 6.2"},"content":{"rendered":"<div class=\"markdown-body\">\n<p>We&#8217;re proud to announce that the latest version of PowerShell has been released!<\/p>\n<p>This is the third minor <a href=\"https:\/\/aka.ms\/pslifecycle\" rel=\"nofollow\">supported<\/a> release of PowerShell Core, the open-source edition of PowerShell that works on Linux, macOS, and Windows!<\/p>\n<p>Thanks to everyone that made this release possible, including our <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/graphs\/contributors\">contributors<\/a>, users, and anyone who <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/blob\/master\/.github\/CONTRIBUTING.md#contributing-to-issues\">filed issues<\/a> and submitted feedback.<\/p>\n<h2><a id=\"user-content-so-how-do-i-install-it\" class=\"anchor\" href=\"#so-how-do-i-install-it\" aria-hidden=\"true\"><\/a>So How Do I Install It?<\/h2>\n<p>For info on installing PowerShell Core 6.2, check our <a href=\"https:\/\/aka.ms\/install-powershell\">installation docs<\/a>.<\/p>\n<p>A reminder that PowerShell Core works side-by-side with Windows PowerShell, so you can use both independently of each other.\nThis means that you can continue to use Windows PowerShell for existing scripts while simultaneously using PowerShell Core for new automation or to explore its new capabilities.<\/p>\n<h2><a id=\"user-content-whats-new\" class=\"anchor\" href=\"#whats-new\" aria-hidden=\"true\"><\/a>What&#8217;s New?<\/h2>\n<p>The PowerShell Core 6.2 release is focused primarily on performance improvements, bug fixes, and smaller cmdlet\/language enhancements that improve the quality of life for users.\nTo see a full list of improvements, check out our detailed\u00a0<a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/releases\">changelogs<\/a> on GitHub.<\/p>\n<p>Since the 6.1.0 release (September 2018), we&#8217;ve taken over 560 changes for the 6.2 release! That&#8217;s almost 4 changes a day (excluding weekends)! Of course, we have to thank our community for providing a significant portion of these improvements. Per our <a href=\"https:\/\/msit.powerbi.com\/view?r=eyJrIjoiYTYyN2U3ODgtMjBlMi00MGM1LWI0ZjctMmQ3MzE2ZDNkMzIyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9&amp;pageName=ReportSection5\" rel=\"nofollow\">public PowerBI dashboard<\/a>,\nthe community is still contributing just over half of all incoming pull requests!<\/p>\n<p>Throughout the development of 6.2, the PowerShell Core team has also been focused on supporting PowerShell Core 6 in Azure Functions (more on this soon!), automating our release process (blog coming!), the <a href=\"https:\/\/devblogs.microsoft.com\/powershell\/powershell-scriptanalyzer-version-1-18-0-released\/\" rel=\"nofollow\">v1.18.0 release of PSScriptAnalyzer<\/a>, the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.PowerShell-Preview\" rel=\"nofollow\">2.0.0-Preview release of the PowerShell Visual Studio Code extension<\/a>, and, of course, the PowerShell Core 6.2 release.<\/p>\n<h2><a id=\"user-content-experimental-features\" class=\"anchor\" href=\"#experimental-features\" aria-hidden=\"true\"><\/a>Experimental Features<\/h2>\n<p>In the 6.1 release, we enabled support for <a href=\"https:\/\/github.com\/MicrosoftDocs\/PowerShell-Docs\/blob\/release-62\/reference\/6\/Microsoft.PowerShell.Core\/About\/about_Experimental_Features.md\">Experimental Features<\/a>\u00a0which allow contributors and PowerShell Team members to deliver new features and get feedback before we consider the design complete and to avoid making breaking changes as the design evolves. It&#8217;s often easier to provide feedback by experimenting with working code than from reading a specification that describes the user experience.<\/p>\n<p>In the 6.2 release, we have a number of Experimental Features you can try out. We&#8217;d love it if you can provide us with feedback on these so we can make improvements, decide whether it&#8217;s worth keeping, or promote it out of an experimental state.<\/p>\n<p>At any time you can use <code>Get-ExperimentalFeature<\/code> to get a list of available experimental features that can be enabled or disabled with <code>Enable\/Disable-ExperimentalFeature<\/code>.<\/p>\n<h3><a id=\"user-content-command-not-found-suggestions\" class=\"anchor\" href=\"#command-not-found-suggestions\" aria-hidden=\"true\"><\/a>Command Not Found Suggestions<\/h3>\n<div class=\"highlight highlight-source-powershell\">\n<pre lang=\"powershell\"><code>Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion<\/code><\/pre>\n<\/div>\n<p>This feature will use fuzzy matching to find suggestions of commands or cmdlets you may have meant to type if you made a typo.<\/p>\n<pre lang=\"output\" class=\"\"><code>PS&gt; Get-Commnd\r\nGet-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file, or operable program.\r\nCheck the spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt line:1 char:1\r\n+ Get-Commnd\r\n+ ~~~~~~~~~~\r\n+ CategoryInfo          : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException\r\n+ FullyQualifiedErrorId : CommandNotFoundException\r\n\r\n\r\nSuggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module, Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.\r\n<\/code><\/pre>\n<p>In this example, I mistyped <code>Get-Command<\/code> and it fuzzy matched to a number of suggestions from most likely to least likely.<\/p>\n<h3><a id=\"user-content-implicit-remoting-batching\" class=\"anchor\" href=\"#implicit-remoting-batching\" aria-hidden=\"true\"><\/a>Implicit Remoting Batching<\/h3>\n<div class=\"highlight highlight-source-powershell\">\n<pre lang=\"powershell\"><code>Enable-ExperimentalFeature -Name PSImplicitRemotingBatching<\/code><\/pre>\n<\/div>\n<p>When using <a href=\"https:\/\/devblogs.microsoft.com\/scripting\/remoting-the-implicit-way\/\" rel=\"nofollow\">implicit remoting<\/a>\u00a0in a pipeline, PowerShell treats each command in the pipeline independently. This results in objects being serialized and de-serialized between the client\nand target system repeatedly over the execution of the pipeline.<\/p>\n<p>With this change, PowerShell analyzes the pipeline and determines if the command is safe to run or the command exists on the target system and is able to execute the entire pipeline remotely and only serialize and de-serialize the results back to the client.<\/p>\n<p>This can result in significant performance gains! A real-world test of <code>Get-Process | Sort-Object<\/code> over localhost shows a decrease from 10-15 seconds to a 20-30 <strong>milliseconds<\/strong>, a speed increase of 300-750x. This should be <em>even faster<\/em> going over a real network connection, and <strong>only requires you to update your client\u00a0<\/strong>(no changes to the server side are necessary).<\/p>\n<h3><a id=\"user-content-temp-drive\" class=\"anchor\" href=\"#temp-drive\" aria-hidden=\"true\"><\/a>Temp Drive<\/h3>\n<div class=\"highlight highlight-source-powershell\">\n<pre lang=\"powershell\"><code>Enable-ExperimentalFeature -Name PSTempDrive<\/code><\/pre>\n<\/div>\n<p>If you&#8217;re using PowerShell Core on different operating systems, you&#8217;ll discover that the environment variable for finding the temporary directory is different on Windows, macOS, and Linux! With this feature, you will get a <a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.management\/new-psdrive?view=powershell-6\" rel=\"nofollow\">PSDrive<\/a>\u00a0called <code>Temp:<\/code> that is automatically mapped to the temporary folder on whichever operating system you are using.<\/p>\n<pre lang=\"output\"><code>PS&gt; \"Hello World!\" &gt; Temp:\/hello.txt\r\nPS&gt; Get-Content Temp:\/hello.txt\r\nHello World!\r\n<\/code><\/pre>\n<p>Be aware that native file commands (like <code>ls<\/code> on Linux)\u00a0are not aware of PSDrives and won&#8217;t see this <code>Temp:<\/code> drive.<\/p>\n<h3><a id=\"user-content-abbreviation-expansion\" class=\"anchor\" href=\"#abbreviation-expansion\" aria-hidden=\"true\"><\/a>Abbreviation Expansion<\/h3>\n<div class=\"highlight highlight-source-powershell\">\n<pre lang=\"powershell\"><code>Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion<\/code><\/pre>\n<\/div>\n<p>PowerShell cmdlets are expected to have descriptive nouns.\u00a0This can results in long names that can take time to type and make it easier to make typing mistakes.\u00a0This feature allows you to just type the uppercase characters of the cmdlet\u00a0and use tab-completion to find a match.<\/p>\n<pre lang=\"output\"><code>PS&gt; i-arsavsf\r\n<\/code><\/pre>\n<p>If you hit tab, and have the Azure PowerShell <a href=\"https:\/\/www.powershellgallery.com\/packages\/Az\" rel=\"nofollow\">Az<\/a>\u00a0module installed, it will autocomplete to:<\/p>\n<pre lang=\"output\"><code>PS&gt; Import-AzRecoveryServicesAsrVaultSettingsFile\r\n<\/code><\/pre>\n<p>Note that this feature is intended to be used interactively so the abbreviated\u00a0forms of cmdlets won&#8217;t work in scripts.\u00a0This is not intended to be a replacement for aliases.<\/p>\n<h2><a id=\"user-content-how-can-i-provide-feedback\" class=\"anchor\" href=\"#how-can-i-provide-feedback\" aria-hidden=\"true\"><\/a>How can I provide feedback?<\/h2>\n<p>As always, you should <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/blob\/master\/.github\/CONTRIBUTING.md#contributing-to-issues\">file issues on GitHub<\/a>\u00a0to let us know about any features you&#8217;d like added or bugs that you encounter.\u00a0Additionally, you can join us for the <a href=\"https:\/\/github.com\/PowerShell\/PowerShell-RFC\/blob\/master\/CommunityCall\/README.md\">PowerShell Community Call<\/a>\non the 3rd Thursday of every month.<\/p>\n<p>Being an Open Source project, we value all types of <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/blob\/master\/.github\/CONTRIBUTING.md\">contributions<\/a>\u00a0including code, tests, documentations, issues, and discussion.<\/p>\n<p>We have an amazing active community and this release would not have been possible\u00a0without you!<\/p>\n<h2><a id=\"user-content-the-future\" class=\"anchor\" href=\"#the-future\" aria-hidden=\"true\"><\/a>The Future<\/h2>\n<p>We are still working out our plans for the next release.\u00a0Stay tuned for our roadmap to be published on this blog!<\/p>\n<p>On behalf of the PowerShell Team,<\/p>\n<p>Steve Lee\nPrincipal Software Engineering Manager\nPowerShell Team\n<a href=\"https:\/\/twitter.com\/Steve_MSFT\" rel=\"nofollow\">https:\/\/twitter.com\/Steve_MSFT<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re proud to announce that the latest version of PowerShell has been released! This is the third minor supported release of PowerShell Core, the open-source edition of PowerShell that works on Linux, macOS, and Windows! Thanks to everyone that made this release possible, including our contributors, users, and anyone who filed issues and submitted feedback. [&hellip;]<\/p>\n","protected":false},"author":685,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-17532","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"acf":[],"blog_post_summary":"<p>We&#8217;re proud to announce that the latest version of PowerShell has been released! This is the third minor supported release of PowerShell Core, the open-source edition of PowerShell that works on Linux, macOS, and Windows! Thanks to everyone that made this release possible, including our contributors, users, and anyone who filed issues and submitted feedback. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/17532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/685"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=17532"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/17532\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=17532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=17532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=17532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}