PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform on 18 August 2016 with the introduction of PowerShell Core. The former is built on the .NET Framework, the latter on .NET Core.

PowerShell 6.0 is a new version of PowerShell that is cross-platform software, meaning it is available for the leading desktop operating systems which includes Windows, Mac, and Linux. It’s also built for heterogeneous environments and the hybrid cloud.

In PowerShell 6.0, the PowerShell Core switches from .NET Framework to .NET Core. PowerShell Core uses .NET Core 2.0 as its runtime. Windows PowerShell used the .NET Framework runtime to host the PowerShell engine.

With 294 non-merge commits since v0.6.0, here are the major changes:

  • 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

Please note that this build corresponds to v0.7.0, with the version updated to reflect the upcoming PowerShell 6.0 release.


Related Articles