Skip to content

Tags: tomcha/PowerShell

Tags

v6.0.0

Toggle v6.0.0's commit message
v6.0.0 release of PowerShell Core

Here are the major changes:

* Breaking changes

- Remove `sc` alias which conflicts with `sc.exe` (PowerShell#5827)
- Separate group policy settings and enable policy controlled logging in PowerShell Core (PowerShell#5791)

* Engine updates and fixes

- Handle `DLLImport` failure of `libpsrpclient` in PowerShell Remoting on Unix platforms (PowerShell#5622)

* Test

- Replace `lee.io` Tests with `WebListener` (PowerShell#5709) (Thanks @markekraus!)
- Update the docker based release package tests due to the removal of `Pester` module and other issues (PowerShell#5692)
- Replace Remaining `HttpBin.org` Tests with `WebListener` (PowerShell#5665) (Thanks @markekraus!)

* Build and Packaging Improvements

- Update x86 and x64 `MSI` packages to not overwrite each other (PowerShell#5812) (Thanks @bergmeister!)
- Update `Restore-PSPester` to include the fix for nested describe errors (PowerShell#5771)
- Automate the generation of release change log draft (PowerShell#5712)

* Documentation and Help Content

- Updated help Uri to point to latest help content for `Microsoft.PowerShell.Core` module (PowerShell#5820)
- Update the installation doc for `Raspberry-Pi` about supported devices (PowerShell#5773)
- Fix a typo and a Markdown linting error in the Pull Request Template (PowerShell#5807) (Thanks @markekraus!)
- Update submodule documentation for pester removal (PowerShell#5786) (Thanks @bergmeister!)
- Change `Github` to `GitHub` in `CONTRIBUTING.md` (PowerShell#5697) (Thanks @stuntguy3000!)
- Fix incorrect release date on the changelog (PowerShell#5698) (Thanks @SwarfegaGit!)
- Add instructions to deploy `win-arm` build on Windows IoT (PowerShell#5682)

v6.0.0-rc.2

Toggle v6.0.0-rc.2's commit message
v6.0.0-rc.2 release of PowerShell Core

Here are the major changes:

* Breaking changes

- Skip null-element check for collections with a value-type element type (PowerShell#5432)
- Make `AllSigned` execution policy require modules under `$PSHome` to be signed (PowerShell#5511)

* Engine updates and fixes

- Update PowerShell to use `2.0.4` dotnet core runtime. (PowerShell#5677)
- Remove references to the old executable `powershell` or `powershell.exe` (PowerShell#5408)

* General cmdlet updates and fixes

- Remove unnecessary check for `Paths.count > 0`, in the `*-FileCatalog` CmdLets (PowerShell#5596)
- Use explicit `libpsl-native` binary name for `dllimport`. (PowerShell#5580)

* Build and Packaging Improvements

- Fix `Get-EnvironmentInformation` to properly check for CoreCLR (PowerShell#5592) (Thanks @markekraus!)
- Make Travis CI use `libcurl+openssl+gssapi` (PowerShell#5629) (Thanks @markekraus!)
- Disambiguate icon for daily builds on Windows (PowerShell#5467) (Thanks @bergmeister!)
- Fix `Import-CliXml` tests which still use `powershell` instead of `pwsh` and make sure it fails if it regresses (PowerShell#5521) (Thanks @markekraus!)
- Update port number used for WebCmdlets tests which broke due to a change in AppVeyor (PowerShell#5520) (Thanks @markekraus!)
- Clean up use of `Runspaceconfiguration` from comments and xUnit test code (PowerShell#5569) (Thanks @Bhaal22!)
- Replace `HttpListener` Response Tests with WebListener (PowerShell#5540, PowerShell#5605) (Thanks @markekraus!)
- Fix the path to `powershell_xxx.inc` in Start-Build (PowerShell#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`. (PowerShell#5623, PowerShell#5631)
- Refactor `New-UnixPackaging` into functions to make the large function more readable. (PowerShell#5625)
- Make the experience better when `Start-PSPester` doesn't find Pester (PowerShell#5673)
- Update packaging and release build scripts to produce zip packages for `win-arm` and `win-arm64` (PowerShell#5664)
- Enable `Install-Debian` to work with VSTS Hosted Linux Preview (PowerShell#5659)
- Add `linux-arm` tarball package to release build (PowerShell#5652, PowerShell#5660)
- Enable building for `win-arm` and `win-arm64` (PowerShell#5524)
- Make macOS package require 10.12 or newer (PowerShell#5649, PowerShell#5654)
- Update signing subjects to something meaningful (PowerShell#5650)
- Make `New-UnixPackage` more readable (PowerShell#5625)
- Update `PowerShellGet` tests to validate the new install location of `AllUsers` scope. (PowerShell#5633)
- Increase reliability of flaky test that fails intermittently in CI (PowerShell#5641)
- Exclude markdown files from `Pester` folder from the Markdown meta test (PowerShell#5636)
- Run tests for Windows installer only on Windows (PowerShell#5619)
- Suppress the expected errors from `Select-Xml` tests (PowerShell#5591)
- Add retry logic to prerequisite URL and output URL on failure so you can more easily troubleshoot (PowerShell#5601, PowerShell#5570)
- Make sure submodule are initialized when running Mac release build (PowerShell#5496)
- Remove duplicate files in Windows packages in a folder called `signed` (PowerShell#5527)
- Add PowerShell VSCode style settings (PowerShell#5529) (Thanks @bergmeister)
- Add Travis CI matrix for improved job tagging (PowerShell#5547)
- Remove community docker files from official docker image validation (PowerShell#5508)

* Documentation and Help Content

- XML documentation fix for `CompletionResult` (PowerShell#5550) (Thanks @bergmeister!)
- Change synopsis of `install-powershell.ps1` to reflect that it works cross-platform (PowerShell#5465) (Thanks @bergmeister!)
- Add more helpful message for `AmbiguousParameterSet` exception (PowerShell#5537) (Thanks @kvprasoon!)
- Update the contribution guideline to note that updating the changelog is required. (PowerShell#5586)
- Updated doc to build arm/arm64 versions of `psrp.windows` and `PowerShell.Core.Instrumentation.dll` libraries (PowerShell#5668)
- Update Contribution guidelines with work in progress guidance (PowerShell#5655)
- Update code coverage tests to get GitCommitId using the ProductVersion from Assembly (PowerShell#5651)
- Remove requirement to updating changelog update in PR (PowerShell#5644, PowerShell#5586)
- Minor refactoring of the release build scripts (PowerShell#5632)
- Update PowerShell executable name in `using-vscode.md` (PowerShell#5593)
- Fix xUnit test for PS (PowerShell#4780)
- Update install link and instructions for R-Pi (PowerShell#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` (PowerShell#5498) (Thanks @bergmeister!)
- Remove exclusion for hang and add context exception for remaining instances (PowerShell#5595)
- Replace `strlen` with `strnlen` in native code (PowerShell#5510)

v6.0.0-rc

Toggle v6.0.0-rc's commit message
** v6.0.0-rc - 2017-11-16

*** Breaking changes

- Fix `-Verbose` to not override `$ErrorActionPreference`. (PowerShell#5113)
- Fix `Get-Item -LiteralPath a*b` to return error if `a*b` doesn't actually exist. (PowerShell#5197)
- Remove `AllScope` from most default aliases to reduce overhead on creating new scopes. (PowerShell#5268)
- Change `$OutputEncoding` default to be `UTF8` without `BOM` rather than `ASCII`. (PowerShell#5369)
- Add error on legacy credential over non-HTTPS for Web Cmdlets. (PowerShell#5402) (Thanks @markekraus!)
- Fix single value JSON `null` in `Invoke-RestMethod`. (PowerShell#5338) (Thanks @markekraus!)
- Add `PSTypeName` Support for `Import-Csv` and `ConvertFrom-Csv`. (PowerShell#5389) (Thanks @markekraus!)

*** Engine updates and fixes

- Add char range overload to the `..` operator, so `'a'..'z'` returns characters from 'a' to 'z'. (PowerShell#5026) (Thanks @IISResetMe!)
- Remove `CommandFactory` because it serves no real purpose. (PowerShell#5266)
- Change to not insert line breaks at console window width to output (except for tables). (PowerShell#5193)
- Use `Ast` for context in parameter binding and fix to glob the native command argument only when it's not quoted. (PowerShell#5188)
- Fix dynamic class assembly name. (PowerShell#5292)
- Update powershell to use `2.0.4-servicing` dotnet core runtime. (PowerShell#5295)
- Fix `ExecutionContext.LoadAssembly` to load with name when file cannot be found. (PowerShell#5161)
- Speed up the check for suspicious content in script texts. (PowerShell#5302)
- Use native `os_log` APIs on macOS for PowerShell Core logging. (PowerShell#5310)
- Redirect `ETW` logging to `Syslog` on Linux. (PowerShell#5144)
- Improve how we pass the array literal to native commands. (PowerShell#5301)
- Make `SemanticVersion` compatible with `SemVer 2.0`. (PowerShell#5037) (Thanks @iSazonov!)
- Revert refactoring changes that broke remoting to Windows PowerShell 5.1. (PowerShell#5321)
- Port some fixes in `Job` for an issue that causes PowerShell to not respond. (PowerShell#5258)
- Multiple improvements by `CodeRush` static analysis. (PowerShell#5132) (Thanks @Himura2la!)
- Fix the Runspace cleanup issue that causes PowerShell to not respond on exit. (PowerShell#5356)
- Update PowerShell to depend on new version of `psrp` and `libmi` nuget packages on Unix platforms. (PowerShell#5469)

*** General cmdlet updates and fixes

- Add `-AsHashtable` to `ConvertFrom-Json` to return a `Hashtable` instead. (PowerShell#5043) (Thanks @bergmeister!)
- Fix `Import-module` to not report a loaded module was not found. (PowerShell#5238)
- Fix performance issues in `Add-Type`. (PowerShell#5243) (Thanks @iSazonov!)
- Fix `PSUserAgent` generation for Web Cmdlets on Windows 7. (PowerShell#5256) (Thanks @markekraus!)
- Remove `DCOM` support from `*-Computer` cmdlets. (PowerShell#5277)
- Add multiple link header support to Web Cmdlets. (PowerShell#5265) (Thanks @markekraus!)
- Use wider columns for process id and user. (PowerShell#5303)
- Add `Remove-Alias` Command. (PowerShell#5143) (Thanks @PowershellNinja!)
- Update `installpsh-suse.sh` to work with the `tar.gz` package. (PowerShell#5309)
- Add `Jobject` serialization support to `ConvertTo-Json`. (PowerShell#5141)
- Display full help with 'help' function. (PowerShell#5195) (Thanks @rkeithhill!)
- Fix `help` function to not pipe to `more` if objects are returned instead of help text. (PowerShell#5395)
- Fix `Unblock-File` to not write an error if the file is already unblocked. (PowerShell#5362) (Thanks @iSazonov!)
- Clean up FullCLR code from Web Cmdlets. (PowerShell#5376) (Thanks @markekraus!)
- Exclude cmdlets that are not supported on Unix platforms. (PowerShell#5083)
- Make `Import-Csv` support `CR`, `LF` and `CRLF` as line delimiters. (PowerShell#5363) (Thanks @iSazonov!)
- Fix spelling in Web Cmdlet errors. (PowerShell#5427) (Thanks @markekraus!)
- Add `SslProtocol` support to Web Cmdlets. (PowerShell#5329) (Thanks @markekraus!)

*** Build and Packaging Improvements

- Use `RCEdit` to embed icon and version information into `pwsh.exe`. (PowerShell#5178)
- Update Docker file for Nano Server 1709 release. (PowerShell#5252)
- Change VSCode build task to use `pwsh`. (PowerShell#5255)
- Refactor building and packaging scripts for signing in release build workflow. (PowerShell#5300)
- Always build with `-CrossGen` in CI to verify a fix in `CrossGen` tool. (PowerShell#5315)
- Separate `Install-PowerShellRemoting.ps1` from `psrp.windows` nuget package. (PowerShell#5330)
- Include symbols folder an embedded zip when packaging symbols. (PowerShell#5333)
- Add Uniform Type Identifier conforming with Apple standards using a reverse DNS style prefix. (PowerShell#5323)
- Update `Wix` toolset download link to newer version 3.11 (PowerShell#5339) (Thanks @bergmeister!)
- Re-enable macOS launcher after fixing an issue that blocked macOS package generation. (PowerShell#5291) (Thanks @thezim!)
- Set expected binaries and variable name for folder for symbols build. (PowerShell#5357)
- Rename and update PowerShell `ETW` manifest to remove the Windows PowerShell dependency. (PowerShell#5360)
- Add ability to produce `tar.gz` package for Raspbian. (PowerShell#5387)
- Update `Find-Dotnet` to find dotnet with the compatible SDK. (PowerShell#5341) (Thanks @rkeithhill!)
- Add signing manifest and script to update it with production values. (PowerShell#5397)
- Add `install-powershell.ps1` to install PowerShell Core on windows. (PowerShell#5383)
- Make `-Name` a dynamic parameter in `Start-PSPackage`. (PowerShell#5415)
- Support `[package]` tag in PR CI and fix nightly build on macOS. (PowerShell#5410)
- Enhance `install-powershell.ps1` to work on Linux and macOS. (PowerShell#5411)
- Move the `RCEdit` step to the build phase rather than the packaging phase. (PowerShell#5404)
- Allow packaging from a zip package to allow for signing. (PowerShell#5418)
- Add automation to validate PowerShell Core packages using Docker containers. (PowerShell#5401)
- Fix the `brew update` issue in bootstrap script. (PowerShell#5400)
- Enable `install-powershell.ps1` to update the current running PowerShell Core. (PowerShell#5429)
- Add standard set of VSCode workspace setting files. (PowerShell#5457) (Thanks @rkeithhill!)
- Add support for installing PowerShell Core on Amazon Linux via `install-powershell.sh`. (PowerShell#5461) (Thanks @DarwinJS!)
- Get `PowerShellGet` and `PackageManagement` from the PowerShell Gallery. (PowerShell#5452)
- Fix `Start-PSBuild` on `WSL` if repository was already built on Windows. (PowerShell#5346) (Thanks @bergmeister!)
- Fix build in VSCode and use an improved version of `tasks.json` from @rkeithhill. (PowerShell#5453)
- Add scripts for signing packages in the release build workflow. (PowerShell#5463)

*** Documentation and Help Content

- Fix the codebase to use the consistent copyright string. (PowerShell#5210)
- Add documentation about how to create `libpsl` and `psrp.windows` nuget packages. (PowerShell#5278)
- Add help strings in PowerShell banner. (PowerShell#5275) (Thanks @iSazonov!)
- Change all links in `README.md` to absolute as they are being used in other places outside of GitHub. (PowerShell#5354)
- Update instructions to build on VSCode based on `pwsh`. (PowerShell#5368)
- Update `FAQ.md` about how to use PowerShell Core nuget packages. (PowerShell#5366)
- Correct the Fedora documentation (PowerShell#5384) (Thanks @offthewoll!)
- Add instructions about how to create the `PowerShell.Core.Instrumentation` nuget package. (PowerShell#5396)
- Updated PowerShell to use the latest help package. (PowerShell#5454)

*** Compliance Work

[Compliance](https://github.com/PowerShell/PowerShell/blob/master/docs/maintainers/issue-management.md#miscellaneous-labels)
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. (PowerShell#5213, PowerShell#5297, PowerShell#5358)
- Use simplified names for compliance folders (PowerShell#5388)
- Add compliance label description (PowerShell#5355)
- Set `requestedExecutionLevel` to `asInvoker` for `pwsh.exe` on Windows. (PowerShell#5285)
- Add `HighEntropyVA` to building pwsh. (PowerShell#5455)

v6.0.0-beta.9

Toggle v6.0.0-beta.9's commit message
* Breaking changes

- Fix `ValueFromRemainingArguments` to have consistent behavior between script and C# cmdlets. (PowerShell#2038) (Thanks @dlwyatt)
- Remove parameters `-importsystemmodules` and `-psconsoleFile` from `powershell.exe`. (PowerShell#4995)
- Removed code to show a GUI prompt for credentials as PowerShell Core prompts in console. (PowerShell#4995)
- Remove `-ComputerName` from `Get/Set/Remove-Service`. (PowerShell#5094)
- Rename the executable name from `powershell` to `pwsh`. (PowerShell#5101)
- Remove `RunspaceConfiguration` support. (PowerShell#4942)
- Remove `-ComputerName` support since .NET Core `Process.GetProcesses(computer)` returns local processes. (PowerShell#4960)
- Make `-NoTypeInformation` the default on `Export-Csv` and `ConvertTo-Csv`. (PowerShell#5164) (Thanks @markekraus)
- Unify cmdlets with parameter `-Encoding` to be of type `System.Text.Encoding`. (PowerShell#5080)

* Engine updates and fixes

- Fix PowerShell to update the `PATH` environment variable only if `PATH` exists. (PowerShell#5021)
- Enable support of folders and files with colon in name on Unix. (PowerShell#4959)
- Fix detection of whether `-LiteralPath` was used to suppress wildcard expansion for navigation cmdlets. (PowerShell#5038)
- Enable using filesystem from a UNC location. (PowerShell#4998)
- Escape trailing backslash when dealing with native command arguments. (PowerShell#4965)
- Change location of `ModuleAnalysisCache` so it isn't shared with Windows PowerShell. (PowerShell#5133)
- Put command discovery before scripts for Unix. (PowerShell#5116)

* General cmdlet updates and fixes

- Correct comma position in `SecureStringCommands.resx`. (PowerShell#5033) (Thanks @markekraus)
- User Agent of Web Cmdlets now reports the OS platform (PowerShell#4937) (Thanks @LDSpits)
- Add the positional parameter attribute to `-InputObject` for `Set-Service`. (PowerShell#5017) (Thanks @travisty-)
- Add `ValidateNotNullOrEmpty` attribute to `-UFormat` for `Get-Date`. (PowerShell#5055) (Thanks @DDWR)
- Add `-NoNewLine` switch for `Out-String`. (PowerShell#5056) (Thanks @raghav710)
- Improve progress messages written by Web Cmdlets. (PowerShell#5078) (Thanks @markekraus)
- Add verb descriptions and alias prefixes for `Get-Verb`. (PowerShell#4746) (Thanks @Tadas)
- Fix `Get-Content -Raw` to not miss the last line feed character. (PowerShell#5076)
- Add authentication parameters to Web Cmdlets. (PowerShell#5052) (Thanks @markekraus)
    - 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 (PowerShell#5121) (Thanks @dee-see)
- Exclude `PSHostProcess` cmdlets from Unix platforms. (PowerShell#5105)
- Fix `Add-Member` to fetch resource string correctly. (PowerShell#5114)
- Enable `Import-Module` to be case insensitive. (PowerShell#5097)
- Add exports for `syslog` APIs in `libpsl-native`. (PowerShell#5149)
- Fix `Get-ChildItem` to not ignore `-Depth` parameter when using with `-Include` or `-Exclude`. (PowerShell#4985) (Thanks @Windos)
- Added properties `UserName`, `Description`, `DelayedAutoStart`, `BinaryPathName` and `StartupType` to the `ServiceController` objects returned by `Get-Service`. (PowerShell#4907) (Thanks @joandrsn)

* Build and Packaging Improvements

- Treat `.rtf` files as binary so EOL don't get changed. (PowerShell#5020)
- Improve the output of `tools/installpsh-osx.sh` and update Travis-CI to use Ruby 2.3.3. (PowerShell#5065)
- Improve `Start-PSBootstrap` to locate dotnet SDK before installing it. (PowerShell#5059) (Thanks @PetSerAl)
- Fix the prerequisite check of the MSI package. (PowerShell#5070)
- Support creating `tar.gz` package for Linux and macOS. (PowerShell#5085)
- Add release builds that produce symbols for compliance scans. (PowerShell#5086)
- Update existing Docker files for the Linux package changes. (PowerShell#5102)
- Add compiler switches and replace dangerous function with safer ones. (PowerShell#5089)
- Add macOS launcher. (PowerShell#5138) (Thanks @thezim)
- Replace `httpbin.org/response-headers` Tests with WebListener. (PowerShell#5058) (Thanks @markekraus)
- Update `appimage.sh` to reflect the new name `pwsh`. (PowerShell#5172)
- Update the man help file used in packaging. (PowerShell#5173)
- Update to use `pwsh` in macOS launcher. (PowerShell#5174) (Thanks @thezim)
- Add code to send web hook for Travis-CI daily build. (PowerShell#5183)
- Add `global.json` to pick correct SDK version. (PowerShell#5118) (Thanks @rkeithhill)
- Update packaging to only package PowerShell binaries when packaging symbols. (PowerShell#5145)
- Update Docker files and related due to the name change. (PowerShell#5156)

* Code Cleanup

- Clean up Json cmdlets. (PowerShell#5001) (Thanks @iSazonov)
- Remove code guarded by `RELATIONSHIP_SUPPORTED` and `SUPPORTS_IMULTIVALUEPROPERTYCMDLETPROVIDER`, which has never been used. (PowerShell#5066)
- Remove PSMI code that has never been used. (PowerShell#5075)
- Remove unreachable code for `Stop-Job`. (PowerShell#5091) (Thanks @travisty-)
- Removed font and codepage handling code that is only applicable to Windows PowerShell. (PowerShell#4995)

* Test

- Fix a race condition between `WebListener` and Web Cmdlets tests. (PowerShell#5035) (Thanks @markekraus)
- Add warning to `Start-PSPester` if Pester module is not found (PowerShell#5069) (Thanks @DDWR)
- Add tests for DSC configuration compilation on Windows. (PowerShell#5011)
- Test fixes and code coverage automation fixes. (PowerShell#5046)

* Documentation and Help Content

- Update Pi demo instructions about installing libunwind8. (PowerShell#4974)
- Add links on best practice guidelines in coding guideline. (PowerShell#4983) (Thanks @iSazonov)
- Reformat command line help for `powershell -help` (PowerShell#4989) (Thanks @iSazonov)
- Change logo in readme to current black icon. (PowerShell#5030)
- Fix RPM package name in `README.md`. (PowerShell#5044)
- Update `docs/building/linux.md` to reflect the current status of powershell build. (PowerShell#5068) (Thanks @dee-see)
- Add black version of `.icns` file for macOS. (PowerShell#5073) (Thanks @thezim)
- Update Arch Linux installation instructions. (PowerShell#5048) (Thanks @kylesferrazza)
- Add submodule reminder to `testing-guidelines.md`. (PowerShell#5061) (Thanks @DDWR)
- Update instructions in `docs/building/internals.md` for building from source. (PowerShell#5072) (Thanks @kylesferrazza)
- Add UserVoice link to Issue Template. (PowerShell#5100) (Thanks @markekraus)
- Add `Get-WebListenerUrl` Based Examples to WebListener `README.md`. (PowerShell#4981) (Thanks @markekraus)
- Add document about how to create cmdlet with dotnet CLI. (PowerShell#5117) (Thanks @rkeithhill)
- Update the help text for PowerShell executable with the new name `pwsh`. (PowerShell#5182)
- Add new forward links for PowerShell 6.0.0 help content. (PowerShell#4978)
- Fix VSCode `launch.json` to point to `pwsh`. (PowerShell#5189)
- Add example of how to create .NET Core cmdlet with Visual Studio. (PowerShell#5096)

v6.0.0-beta.8

Toggle v6.0.0-beta.8's commit message
v6.0.0-beta.8 release of PowerShellCore

Here are the major changes:

* Breaking changes

- Changed `New-Service` to return error when given unsupported `-StartupType` and fixed `Set-Service` icon failing test. (PowerShell#4802)
- Allow `*` to be used in registry path for `Remove-Item`. (PowerShell#4866)
- Remove unsupported `-ShowWindow` switch from `Get-Help`. (PowerShell#4903)
- Fix incorrect position of a parameter which resulted in the args passed as input instead of as args for `InvokeScript()`. (PowerShell#4963)

* Engine updates and fixes

- Make calls to `void CodeMethod` work. (PowerShell#4850) (Thanks @powercode)
- Get `PSVersion` and `GitCommitId` from the `ProductVersion` attribute of assembly (PowerShell#4863) (Thanks @iSazonov)
- Fix `powershell -version` and built-in help for `powershell.exe` to align with other native tools. (PowerShell#4958 & PowerShell#4931) (Thanks @iSazonov)
- Load assemblies with `Assembly.LoadFrom` before `Assembly.Load` when the file path is given. (PowerShell#4196)
- Add a generic file watcher function in `HelpersCommon.psm1`. (PowerShell#4775)
- Update old links and fix broken links in `docs/host-powershell/README.md`. (PowerShell#4877)
- Fix when importing remote modules using version filters (and added tests). (PowerShell#4900)
- Enable transcription of native commands on non-Windows platforms. (PowerShell#4871)
- Add a new line to `CommandNotFoundException` error string. (PowerShell#4934 & PowerShell#4991)
- Fix bug where PowerShell would exit with an error within an SSH remoting connection on Linux. (PowerShell#4993)
- Fix issues with expression redirected to file. (PowerShell#4847)

* General cmdlet updates and fixes

- Added `Remove-Service` to Management module. (PowerShell#4858) (Thanks @joandrsn)
- Added functionality to set credentials on `Set-Service` command. (PowerShell#4844) (Thanks @joandrsn)
- Fix `Select-String` to exclude directories (as opposed to individual files) discovered from `-Path`. (PowerShell#4829) (Thanks @iSazonov)
- `Get-Date` now supports more argument completion scenarios by adding `ArgumentCompletionsAttribute`. (PowerShell#4835) (Thanks @iSazonov)
- Exclude `-ComObject` parameter of `New-Object` on unsupported (currently non-Windows) platforms. (PowerShell#4922) (Thanks @iSazonov)
- Updated default `ModuleVersion` in `New-ModuleManifest` to `0.0.1` to align with SemVer. (PowerShell#4842) (Thanks @LDSpits)
- Add Multipart support to web cmdlets. (PowerShell#4782) (Thanks @markekraus)
- Add `-ResponseHeadersVariable` to `Invoke-RestMethod` to enable the capture of response headers. (PowerShell#4888) (Thanks @markekraus)
- Initialize web cmdlets headers dictionary only once. (PowerShell#4853) (Thanks @markekraus)
- Change web cmdlets `UserAgent` from `WindowsPowerShell` to `PowerShell`. (PowerShell#4914) (Thanks @markekraus)

* DSC Language

- Update version of `PSDesiredStateConfiguration` in project files to fix complication of MOF files with the `Configuration` keyword. (PowerShell#4979)

v6.0.0-beta.7

Toggle v6.0.0-beta.7's commit message
v6.0.0-beta.7 release of PowerShellCore

Here are the major changes:

* Breaking change

- Fix `Get-Content -Delimiter` to not include the delimiter in the array elements returned (PowerShell#3706) (Thanks @mklement0)
- Rename `$IsOSX` to `$IsMacOS` (PowerShell#4757)

* Engine updates and fixes

- Use stricter rules when unwrapping a PSObject that wraps a COM object (PowerShell#4614)
- Remove appended Windows PowerShell `PSModulePath` on Windows. (PowerShell#4656)
- Ensure `GetNetworkCredential()` returns null if PSCredential has null or empty user name (PowerShell#4697)
- Push locals of automatic variables to 'DottedScopes' when dotting script cmdlets (PowerShell#4709)
- Fix `using module` when module has non-terminating errors handled with `SilentlyContinue` (PowerShell#4711) (Thanks @iSazonov)
- Enable use of 'Singleline,Multiline' option in split operator (PowerShell#4721) (Thanks @iSazonov)
- Fix error message in `ValidateSetAttribute.ValidateElement()` (PowerShell#4722) (Thanks @iSazonov)

* General cmdlet updates and fixes

- Add Meta, Charset, and Transitional parameters to `ConvertTo-HTML` (PowerShell#4184) (Thanks @ergo3114)
- Prevent `Test-ModuleManifest` from loading unnecessary modules (PowerShell#4541)
- Remove AlternateStream code and `-Stream` from provider cmdlets on non-Windows (PowerShell#4567)
- Add explicit ContentType detection to `Invoke-RestMethod` (PowerShell#4692)
- Fix an error on `Enter-PSSession` exit (PowerShell#4693)
- Add `-WhatIf` switch to `Start-Process` cmdlet (PowerShell#4735) (Thanks @sarithsutha)
- Remove double spaces in .cs, .ps1, and .resx files (PowerShell#4741 & PowerShell#4743) (Thanks @korygill)
- Replace 'Windows PowerShell' with 'PowerShell' in resx files (PowerShell#4758) (Thanks @iSazonov)

* Build and Packaging Improvements

- Refactor MSBuild project files to get PowerShell version from git tag (PowerShell#4182) (Thanks @iSazonov)
- Create a single package for each Windows supported architecture (x86 and amd64) (PowerShell#4540)
- Set the default windows RID to win7-<arch> (PowerShell#4701)
- Enable cross-compiling for Raspberry-PI arm32 (PowerShell#4742)
- Fix macOS brew reinstall command (PowerShell#4627) (Thanks @TheNewStellW)
- Improvements to the Travis-CI script (PowerShell#4689, PowerShell#4731, PowerShell#4807)
- Update OpenSUSE docker image to 42.2 (PowerShell#4737)
- Confirm `Start-PSPackage` produces a package (PowerShell#4795)

* Test

- Add test WebListener module and tests for Web Cmdlet Certificate Authentication (PowerShell#4622) (Thanks @markekraus)
- Move WebCmdlets HTTPS tests to WebListener (PowerShell#4733) (Thanks @markekraus)
- Replace httpbin.org/get tests With WebListener (PowerShell#4738) (Thanks @markekraus)

* Documentation

- Clarify the Pull Request process, roles, and responsibilities (PowerShell#4710)
- Update coding guidelines to make it more concrete and useful in a review process (PowerShell#4754)

v6.0.0-beta.6

Toggle v6.0.0-beta.6's commit message
v6.0.0-beta.6 release of PowerShellCore

Here are the major changes:

* Breaking change

- Make invalid argument error messages for `-File` and `-Command` consistent and make exit codes consistent with Unix standards (PowerShell#4573)

* Engine updates and fixes

- Make resource loading to work with PowerShell SxS installation (PowerShell#4139)
- Add missing assemblies to TPA list to make Pwrshplughin.dll work (PowerShell#4502)
- Make sure running `powershell` starts instance of the current version of PowerShell. (PowerShell#4481)
- Make sure we only use Unicode output by default on Nano and IoT systems (PowerShell#4074)
- Enable `powershell -WindowStyle` to work on Windows. (PowerShell#4573)
- Enable enumeration of COM collections. (PowerShell#4553)

* General cmdlet updates and fixes

- Fix Web CmdLets `-SkipHeaderValidation` to work with non-standard User-Agent headers. (PowerShell#4479 & PowerShell#4512) (Thanks @markekraus)
- Add Certificate authentication support for Web CmdLets. (PowerShell#4646) (Thanks @markekraus)
- Add support for content headers to Web CmdLets. (PowerShell#4494 & PowerShell#4640) (Thanks @markekraus)
- Add support for converting enums to string (PowerShell#4318) (Thanks @KirkMunro)
- Ignore casing when binding PSReadline KeyHandler functions (PowerShell#4300) (Thanks @oising)
- Fix `Unblock-File` for the case of a read-only file. (PowerShell#4395) (Thanks @iSazonov)
- Use supported API to set Central Access Policy ID (CAPID) in SACL. (PowerShell#4496)
- Make `Start-Trace` support paths that require escaping in the underlying APIs (PowerShell#3863)
- Removing `#if CORECLR` enabled, `Enable-PSRemoting` and `Disable-PSRemoting` (PowerShell#2671)
- Enable WSManCredSSP cmdlets and add tests. (PowerShell#4336)
- Use .NET Core's implementation for ShellExecute. (PowerShell#4523)
- Fix SSH Remoting handling of KeyFileParameter when the path must be quoted. (PowerShell#4529)
- Make Web CmdLets use HTML meta charset attribute value, if present (PowerShell#4338)
- Move to .NET Core 2.0 final (PowerShell#4603)

* Build/test and code cleanup

- Add Amazon Linux Docker image and enable related tests. (PowerShell#4393) (Thanks @DarwinJS)
- Make MSI verify pre-requisites are installed. (PowerShell#4602) (Thank @bergmeister)
- Fixed formatting issues in build files. (PowerShell#4630) (Thanks @iSazonov)
- Make sure `install-powershell.sh` installs latest powershell on macOS, even if an old version is cached in brew. (PowerShell#4509) (Thanks @richardszalay for reporting.)
- Fixes install scripts issue for macOS. (PowerShell#4631) (Thanks @DarwinJS)
- Many stability improvements to our nightly code coverage automation. (PowerShell#4313 & PowerShell#4550)
- Remove hash validation from nanoserver-insider Docker file, due to frequent changes. (PowerShell#4498)
- Update to make Travis-CI daily build badge more reliable. (PowerShell#4522)
- Remove unused build files, build code, and product code. (PowerShell#4532, PowerShell#4580, PowerShell#4590, PowerShell#4589, PowerShell#4588, PowerShell#4587, PowerShell#4586, PowerShell#4583, PowerShell#4582, PowerShell#4581)
- Add additional acceptance tests for PowerShellGet. (PowerShell#4531)
- Only publish a NuGet of the full PowerShell core package on daily builds and not merge. (PowerShell#4517)
- Update nanoserver-insider Docker file due to breaking changes in the base image. (PowerShell#4555)
- Cleanup engine tests (PowerShell#4551)
- Fix intermittent failures in filesystem tests (PowerShell#4566)
- Add tests for
    - `New-WinEvent`. (PowerShell#4384)
    - tab completion.  (PowerShell#4560)
    - various types. (PowerShell#4503)
    - CDXML CmdLets. (PowerShell#4537)
- Only allow packaging of powershell, if it was built from a repo at the root of the file system named powershell. (PowerShell#4569 & PowerShell#4600)
- Update `Format-Hex` test cases to use -TestCase instead of foreach loops. (PowerShell#3800)
- Added functionality to get code coverage for a single file locally. (PowerShell#4556)

* Documentation

- Added Ilya (@iSazonov) as a Maintainer. (PowerShell#4365)
- Grammar fix to the Pull Request Guide. (PowerShell#4322)
- Add homebrew for macOS to install documentation. (PowerShell#3838)
- Added a CodeOwner file. (PowerShell#4565 & PowerShell#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.

v6.0.0-beta.5

Toggle v6.0.0-beta.5's commit message
v6.0.0-beta.5 release of PowerShellCore

Here are the major changes:

* Breaking changes

- Remove the `*-Counter` cmdlets in `Microsoft.PowerShell.Diagnostics` due to the use of unsupported APIs until a better solution is found. (PowerShell#4303)
- Remove the `Microsoft.PowerShell.LocalAccounts` due to the use of unsupported APIs until a better solution is found. (PowerShell#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). (PowerShell#4463)
- `ValidateSetAttribute` enhancement: support set values to be dynamically generated from a custom `ValidateSetValueGenerator`. (PowerShell#3784) (Thanks to @iSazonov!)
- Disable breaking into debugger on Ctrl+Break when running non-interactively. (PowerShell#4283) (Thanks to @mwrock!)
- Give error instead of crashing if WSMan client library is not available. (PowerShell#4387)
- Allow passing `$true`/`$false` as a parameter to scripts using `powershell.exe -File`. (PowerShell#4178)
- Enable `DataRow`/`DataRowView` adapters in PowerShell Core to fix an issue with `DataTable` usage. (PowerShell#4258)
- Fix an issue where PowerShell class static methods were being shared across `Runspace`s/`SessionState`s. (PowerShell#4209)
- Fix array expression to not return null or throw error. (PowerShell#4296)
- Fixes a CIM deserialization bug where corrupted CIM classes were instantiating non-CIM types. (PowerShell#4234)
- Improve error message when `HelpMessage` property of `ParameterAttribute` is set to empty string. (PowerShell#4334)
- Make `ShellExecuteEx` run in a STA thread. (PowerShell#4362)

* General cmdlet updates and fixes

- Add `-SkipHeaderValidation` switch to `Invoke-WebRequest` and `Invoke-RestMethod` to support adding headers without validating the header value. (PowerShell#4085)
- Add support for `Invoke-Item -Path <folder>`. (PowerShell#4262)
- Fix `ConvertTo-Html` output when using a single column header. (PowerShell#4276)
- Fix output of `Length` for `FileInfo` when using `Format-List`. (PowerShell#4437)
- Fix an issue in implicit remoting where restricted sessions couldn't use `Get-FormatData –PowerShellVersion`. (PowerShell#4222)
- Fix an issue where `Register-PSSessionConfiguration` fails if `SessionConfig` folder doesn't exist. (PowerShell#4271)

* Installer updates

- Create script to install latest PowerShell from Microsoft package repositories (or Homebrew) on non-Windows platforms. (PowerShell#3608) (Thanks to @DarwinJS!)
- Enable MSI upgrades rather than a side-by-side install. (PowerShell#4259)
- Add a checkbox to open PowerShell after the Windows MSI installer has finished. (PowerShell#4203) (Thanks to @bergmeister!)
- Add Amazon Linux compatibility to `install-powershell.sh`. (PowerShell#4360) (Thanks to @DarwinJS!)
- Add ability to package PowerShell Core as a NuGet package. (PowerShell#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! (PowerShell#4185) (Thanks to @KirkMunro!)
- 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. (PowerShell#4335)
- Add tests for built-in type accelerators. (PowerShell#4230) (Thanks to @dchristian3188!)
- Increase code coverage of `Get-ChildItem` on file system. (PowerShell#4342) (Thanks to @jeffbi!)
- Increase test coverage for `Rename-Item` and `Move-Item`. (PowerShell#4329) (Thanks to @jeffbi!)
- Add test coverage for Registry provider. (PowerShell#4354) (Thanks to @jeffbi!)
- Fix warnings and errors thrown by PSScriptAnalyzer. (PowerShell#4261) (Thanks to @bergmeister!)
- Fix regressions that cause implicit remoting tests to fail. (PowerShell#4326)
- Disable legacy UTC and SQM Windows telemetry by enclosing the code in '#if LEGACYTELEMETRY'. (PowerShell#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.
To read more about this, check out [this blog post](https://blogs.msdn.microsoft.com/powershell/2017/07/14/powershell-6-0-roadmap-coreclr-backwards-compatibility-and-more/).

v6.0.0-beta.4

Toggle v6.0.0-beta.4's commit message
** v6.0.0-beta.4 - 2017-07-12

- Add Windows PowerShell `PSModulePath` by default on Windows. (PowerShell#4132)
- Move PowerShell to `2.0.0-preview3-25426-01` and using the .NET CLI version `2.0.0-preview2-006502`. (PowerShell#4144)

*** Engine updates and fixes

- Performance improvement in PSReadline by minimizing writing ANSI escape sequences. (PowerShell#4110)
- Implement Unicode escape parsing so that users can use Unicode characters as arguments, strings or variable names. (PowerShell#3958) (Thanks to @rkeithhill!)
- Script names or full paths can have commas. (PowerShell#4136) (Thanks to @TimCurwick!)
- Added `semver` as a type accelerator for `System.Management.Automation.SemanticVersion`. (PowerShell#4142) (Thanks to @oising!)
- Close `eventLogSession` and `EventLogReader` to unlock an ETL log. (PowerShell#4034) (Thanks to @iSazonov!)

*** General cmdlet updates and fixes

- `Move-Item` cmdlet honors `-Include`, `-Exclude`, and `-Filter` parameters. (PowerShell#3878)
- Add a parameter to `Get-ChildItem` called `-FollowSymlink` that traverses symlinks on demand, with checks for link loops. (PowerShell#4020)
- Change `New-ModuleManifest` encoding to UTF8NoBOM on non-Windows platforms. (PowerShell#3940)
- `Get-AuthenticodeSignature` cmdlets can now get file signature timestamp. (PowerShell#4061)
- Add tab completion for `Export-Counter` `-FileFormat` parameter. (PowerShell#3856)
- Fixed `Import-Module` on non-Windows platforms so that users can import modules with `NestedModules` and `RootModules`. (PowerShell#4010)
- Close `FileStream` opened by `Get-FileHash`. (PowerShell#4175) (Thanks to @rkeithhill!)

*** Remoting

- Fixed hang when the SSH client abruptly terminates. (PowerShell#4123)

*** Documentation

- Added recommended settings for VS Code. (PowerShell#4054) (Thanks to @iSazonov!)

v6.0.0-beta.3

Toggle v6.0.0-beta.3's commit message
v6.0.0-beta.3 release of PowerShellCore

Here are the major changes:

* 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.
 (PowerShell#3877) (Thanks to @iSazonov!)
- 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`.
 (PowerShell#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.)
 (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 Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules'`)
 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 PowerShell#4062][issue-4062]! (PowerShell#3981)
- Enhance type inference in tab completion based on runtime variable values. (PowerShell#2744) (Thanks to @powercode!)
 This enables tab completion in situations like:
 ```powershell
 $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! (PowerShell#3916) (Thanks to @iSazonov!)
- Fix a bug in tab completion to make `native.exe --<tab>` call into native completer. (PowerShell#3633) (Thanks to @powercode!)
- Fix PowerShell Core to allow use of long paths that are more than 260 characters. (PowerShell#3960)
- Fix ConsoleHost to honour `NoEcho` on Unix platforms. (PowerShell#3801)
- Fix transcription to not stop when a Runspace is closed during the transcription. (PowerShell#3896)

[issue-4062]: PowerShell#4062

* General cmdlet updates and fixes

- Enable `Send-MailMessage` in PowerShell Core. (PowerShell#3869)
- Fix `Get-Help` to support case insensitive pattern matching on Unix platforms. (PowerShell#3852)
- Fix tab completion on `Get-Help` for `about_*` topics. (PowerShell#4014)
- Fix PSReadline to work in Windows Server Core container image. (PowerShell#3937)
- Fix `Import-Module` to honour `ScriptsToProcess` when `-Version` is specified. (PowerShell#3897)
- Strip authorization header on redirects with web cmdlets. (PowerShell#3885)
- `Start-Sleep`: add the alias `ms` to the parameter `-Milliseconds`. (PowerShell#4039) (Thanks to @Tadas!)

* Developer experience

- Make hosting PowerShell Core in your own .NET applications much easier by refactoring PowerShell Core to use the default CoreCLR loader. (PowerShell#3903)
- Update `Add-Type` to support `CSharpVersion7`. (PowerShell#3933) (Thanks to @iSazonov)