42 KiB
Changelog
v6.0.0-beta.7 - 2017-09-13
Breaking change
- Fix
Get-Content -Delimiterto not include the delimiter in the array elements returned (#3706) (Thanks @mklement0) - Rename
$IsOSXto$IsMacOS(#4757)
Engine updates and fixes
- Use stricter rules when unwrapping a PSObject that wraps a COM object (#4614)
- Remove appended Windows PowerShell
PSModulePathon 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 modulewhen module has non-terminating errors handled withSilentlyContinue(#4711) (Thanks @iSazonov) - Enable use of 'Singleline,Multiline' option in split operator (#4721) (Thanks @iSazonov)
- Fix error message in
ValidateSetAttribute.ValidateElement()(#4722) (Thanks @iSazonov)
General cmdlet updates and fixes
- Add Meta, Charset, and Transitional parameters to
ConvertTo-HTML(#4184) (Thanks @ergo3114) - Prevent
Test-ModuleManifestfrom loading unnecessary modules (#4541) - Remove AlternateStream code and
-Streamfrom provider cmdlets on non-Windows (#4567) - Add explicit ContentType detection to
Invoke-RestMethod(#4692) - Fix an error on
Enter-PSSessionexit (#4693) - Add
-WhatIfswitch toStart-Processcmdlet (#4735) (Thanks @sarithsutha) - Remove double spaces in .cs, .ps1, and .resx files (#4741 & #4743) (Thanks @korygill)
- Replace 'Windows PowerShell' with 'PowerShell' in resx files (#4758) (Thanks @iSazonov)
Build and Packaging Improvements
- Refactor MSBuild project files to get PowerShell version from git tag (#4182) (Thanks @iSazonov)
- 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) (Thanks @TheNewStellW)
- Improvements to the Travis-CI script (#4689, #4731, #4807)
- Update OpenSUSE docker image to 42.2 (#4737)
- Confirm
Start-PSPackageproduces a package (#4795)
Code Cleanup
- Remove Workflow code (#4777)
- Clean up CORECLR preprocessor directives in TraceSource (#4684)
Test
- Add test WebListener module and tests for Web Cmdlet Certificate Authentication (#4622) (Thanks @markekraus)
- Move WebCmdlets HTTPS tests to WebListener (#4733) (Thanks @markekraus)
- Replace httpbin.org/get tests With WebListener (#4738) (Thanks @markekraus)
- Use
-PassThruon 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-ServiceandNew-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-Servicefailing 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) (Thanks @chucklu)
- 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)
v6.0.0-beta.6 - 2017-08-24
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
powershellstarts 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 -WindowStyleto work on Windows. (#4573) - Enable enumeration of COM collections. (#4553)
General cmdlet updates and fixes
- Fix Web CmdLets
-SkipHeaderValidationto 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-Filefor 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-Tracesupport paths that require escaping in the underlying APIs (#3863) - Removing
#if CORECLRenabled,Enable-PSRemotingandDisable-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.shinstalls 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)
- Add tests for
New-WinEvent. (#4384)- tab completion. (#4560)
- various types. (#4503)
- CDXML CmdLets. (#4537)
- 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-Hextest cases to use -TestCase instead of foreach loops. (#3800) - Added functionality to get code coverage for a single file locally. (#4556)
Documentation
- Added Ilya (@iSazonov) as a Maintainer. (#4365)
- Grammar fix to the Pull Request Guide. (#4322)
- Add homebrew for macOS to install documentation. (#3838)
- 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. To read more about this, check out this blog post.
v6.0.0-beta.5 - 2017-08-02
Breaking changes
- Remove the
*-Countercmdlets inMicrosoft.PowerShell.Diagnosticsdue to the use of unsupported APIs until a better solution is found. (#4303) - Remove the
Microsoft.PowerShell.LocalAccountsdue 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)
ValidateSetAttributeenhancement: support set values to be dynamically generated from a customValidateSetValueGenerator. (#3784) (Thanks to @iSazonov!)- Disable breaking into debugger on Ctrl+Break when running non-interactively. (#4283) (Thanks to @mwrock!)
- Give error instead of crashing if WSMan client library is not available. (#4387)
- Allow passing
$true/$falseas a parameter to scripts usingpowershell.exe -File. (#4178) - Enable
DataRow/DataRowViewadapters in PowerShell Core to fix an issue withDataTableusage. (#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
HelpMessageproperty ofParameterAttributeis set to empty string. (#4334) - Make
ShellExecuteExrun in a STA thread. (#4362)
General cmdlet updates and fixes
- Add
-SkipHeaderValidationswitch toInvoke-WebRequestandInvoke-RestMethodto support adding headers without validating the header value. (#4085) - Add support for
Invoke-Item -Path <folder>. (#4262) - Fix
ConvertTo-Htmloutput when using a single column header. (#4276) - Fix output of
LengthforFileInfowhen usingFormat-List. (#4437) - Fix an issue in implicit remoting where restricted sessions couldn't use
Get-FormatData –PowerShellVersion. (#4222) - Fix an issue where
Register-PSSessionConfigurationfails ifSessionConfigfolder doesn't exist. (#4271)
Installer updates
- Create script to install latest PowerShell from Microsoft package repositories (or Homebrew) on non-Windows platforms. (#3608) (Thanks to @DarwinJS!)
- 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) (Thanks to @bergmeister!)
- Add Amazon Linux compatibility to
install-powershell.sh. (#4360) (Thanks to @DarwinJS!) - 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) (Thanks to @KirkMunro!)
- Move building Windows PSRP binary out of
Start-PSBuild. NowStart-PSBuilddoesn'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) (Thanks to @dchristian3188!)
- Increase code coverage of
Get-ChildItemon file system. (#4342) (Thanks to @jeffbi!) - Increase test coverage for
Rename-ItemandMove-Item. (#4329) (Thanks to @jeffbi!) - Add test coverage for Registry provider. (#4354) (Thanks to @jeffbi!)
- Fix warnings and errors thrown by PSScriptAnalyzer. (#4261) (Thanks to @bergmeister!)
- 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. To read more about this, check out this blog post.
v6.0.0-beta.4 - 2017-07-12
Windows PowerShell backwards compatibility
In the beta.4 release, we've introduced a change to add the Windows PowerShell PSModulePath to the default PSModulePath in PowerShell Core on Windows. (#4132)
Along with the introduction of .NET Standard 2.0 in 6.0.0-beta.1 and a GAC probing fix in 6.0.0-beta.3,
this change will enable a large number of your existing Windows PowerShell modules/scripts to "just work" inside of PowerShell Core on Windows.
(Note: We have also fixed the CDXML modules on Windows that were regressed in 6.0.0-beta.2 as part of #4144).
So that we can further enable this backwards compatibility,
we ask that you tell us more about what modules or scripts do and don't work in Issue #4062.
This feedback will also help us determine if PSModulePath should include the Windows PowerShell values by default in the long run.
For more information on this, we invite you to read this blog post explaining PowerShell Core and .NET Standard in more detail.
Engine updates and fixes
- Add Windows PowerShell
PSModulePathby default on Windows. (#4132) - Move PowerShell to
2.0.0-preview3-25426-01and using the .NET CLI version2.0.0-preview2-006502. (#4144) - 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) (Thanks to @rkeithhill!)
- Script names or full paths can have commas. (#4136) (Thanks to @TimCurwick!)
- Added
semveras a type accelerator forSystem.Management.Automation.SemanticVersion. (#4142) (Thanks to @oising!) - Close
eventLogSessionandEventLogReaderto unlock an ETL log. (#4034) (Thanks to @iSazonov!)
General cmdlet updates and fixes
Move-Itemcmdlet honors-Include,-Exclude, and-Filterparameters. (#3878)- Add a parameter to
Get-ChildItemcalled-FollowSymlinkthat traverses symlinks on demand, with checks for link loops. (#4020) - Change
New-ModuleManifestencoding to UTF8NoBOM on non-Windows platforms. (#3940) Get-AuthenticodeSignaturecmdlets can now get file signature timestamp. (#4061)- Add tab completion for
Export-Counter-FileFormatparameter. (#3856) - Fixed
Import-Moduleon non-Windows platforms so that users can import modules withNestedModulesandRootModules. (#4010) - Close
FileStreamopened byGet-FileHash. (#4175) (Thanks to @rkeithhill!)
Remoting
- Fixed hang when the SSH client abruptly terminates. (#4123)
Documentation
- Added recommended settings for VS Code. (#4054) (Thanks to @iSazonov!)
v6.0.0-beta.3 - 2017-06-20
Breaking changes
- Remove the
BuildVersionproperty from$PSVersionTable. This property was strongly tied to the Windows build version. Instead, we recommend that you useGitCommitIdto retrieve the exact build version of PowerShell Core. (#3877) (Thanks to @iSazonov!) - Change positional parameter for
powershell.exefrom-Commandto-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 likepowershell foo.ps1orpowershell fooScriptwithout specifying-File. However, this change now requires that you explicitly specify-cor-Commandwhen trying to do things likepowershell.exe Get-Command. (#4019) - Remove
ClrVersionproperty 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 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 #4062! (#3981) - Enhance type inference in tab completion based on runtime variable values. (#2744) (Thanks to @powercode!) This enables tab completion in situations like:
$p = Get-Process
$p | Foreach-Object Prio<tab>
- Add
GitCommitIdto PowerShell Core banner. Now you don't have to run$PSVersionTableas 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 use of long paths that are more than 260 characters. (#3960)
- Fix ConsoleHost to honour
NoEchoon Unix platforms. (#3801) - Fix transcription to not stop when a Runspace is closed during the transcription. (#3896)
General cmdlet updates and fixes
- Enable
Send-MailMessagein PowerShell Core. (#3869) - Fix
Get-Helpto support case insensitive pattern matching on Unix platforms. (#3852) - Fix tab completion on
Get-Helpforabout_*topics. (#4014) - Fix PSReadline to work in Windows Server Core container image. (#3937)
- Fix
Import-Moduleto honourScriptsToProcesswhen-Versionis specified. (#3897) - Strip authorization header on redirects with web cmdlets. (#3885)
Start-Sleep: add the aliasmsto the parameter-Milliseconds. (#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. (#3903)
- Update
Add-Typeto supportCSharpVersion7. (#3933) (Thanks to @iSazonov)
v6.0.0-beta.2 - 2017-06-01
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
*-Jobcmdlets 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
SemanticVersioninstance and aVersioninstance that is constructed only withMajorandMinorversion values. This will fix some cases where PowerShell Core was failing to import older Windows PowerShell modules. (#3793) (Thanks to @mklement0!)
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 andrelattributes 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-FollowRelLinkswitch to automatically follownextrellinks until they no longer exist or once we hit the optional-MaximumFollowRelLinkparameter value.
- For
- Update
Get-ChildItemto be more in line with the way that the *nixls -Rand the WindowsDIR /Snative commands handle symbolic links to directories during a recursive search. Now,Get-ChildItemreturns the symbolic links it encountered during the search, but it won't search the directories those links target. (#3780) - Fix
Get-ChildItemto 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 ofGet-ChildItem. (#3806) - Fix
ConvertFrom-Jsonto 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-TimeZonefor macOS/Linux. (#3735) - Change to not expose unsupported aliases and cmdlets on macOS/Linux. (#3595) (Thanks to @iSazonov!)
- Fix
Invoke-Itemto 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)
v6.0.0-beta.1 - 2017-05-08
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)
- the OS platform (
If you want to opt-out of this telemetry, simply delete $PSHome\DELETE_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.
If you have any questions or comments about our telemetry, please file an issue.
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).
- This means you can now use wildcards with native binaries/commands (e.g.
- Fix PowerShell Core to find help content from
$PSHomeinstead of the Windows PowerShell base directory. (#3528)- This should fix issues where about_* topics couldn't be found on Unix platforms.
- Add the
OSentry to$PSVersionTable. (#3654) - Arrange the display of
$PSVersionTableentries in the following way: (#3562) (Thanks to @iSazonov!)PSVersionPSEdition- 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
-iswitch to indicate an interactive shell. (#3558)- This will help when using PowerShell as a default shell on Unix platforms.
- Relax the PowerShell
SemanticVersionconstructors 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) (Thanks to @powercode)
- Fix code in PowerShell to use
IntPtr(-1)forINVALID_HANDLE_VALUEinstead ofIntPtr.Zero. (#3544) (Thanks to @0xfeeddeadbeef)
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-Moduleto avoid incorrect cyclic dependency detection. (#3594) - Fix
New-ModuleManifestto 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-Itemto allow creating symbolic links to file/directory targets and even a non-existent target. (#3509) - Change the behavior of
Remove-Itemon a symbolic link to only removing the link itself. (#3637) - Use better error message when
New-Itemfails to create a symbolic link because the specified link path points to an existing item. (#3703) - Change
Get-ChildItemto list the content of a link to a directory on Unix platforms. (#3697) - Fix
Rename-Itemto allow Unix globbing patterns in paths. (#3661)
Interactive fixes
- Add Hashtable tab completion for
-PropertyofSelect-Object. (#3625) (Thanks to @powercode) - Fix tab completion with
@{<tab>to avoid crash in PSReadline. (#3626) (Thanks to @powercode) - Use
<id> - <name>asToolTipandListItemTextwhen tab completing process ID. (#3664) (Thanks to @powercode)
Remoting fixes
- Update PowerShell SSH remoting to handle multi-line error messages from OpenSSH client. (#3612)
- Add
-Portparameter toNew-PSSessionto create PowerShell SSH remote sessions on non-standard (non-22) ports. (#3499) (Thanks to @Lee303)
API Updates
- Add the public property
ValidRootDrivestoValidateDriveAttributeto make it easy to discover the attribute state viaParameterMetadataorPSVariableobjects. (#3510) (Thanks to @indented-automation!) - Improve error messages for
ValidateCountAttribute. (#3656) (Thanks to @iSazonov) - Update
ValidatePatternAttribute,ValidateSetAttributeandValidateScriptAttributeto allow users to more easily specify customized error messages. (#2728) (Thanks to @powercode)
v6.0.0-alpha.18 - 2017-04-05
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) (Thanks to @iSazonov!)
- Fix the progress bar rendering on Unix platforms. (#3362) (#3453)
- Reuse
ProgressRecordin Web Cmdlets to reduce the GC overhead. (#3411) (Thanks to @iSazonov!)
Cmdlet updates
- Use
ShellExecutewithStart-Process,Invoke-Item, andGet-Help -Onlineso that those cmdlets use standard shell associations to open a file/URI. This means youGet-Help -Onlinewill always use your default browser, andStart-Process/Invoke-Itemcan open any file or path with a handler. (Note: there are still some problems with STA threads.) (#3281, partially fixes #2969) - Add
-Extensionand-LeafBaseswitches toSplit-Pathso that you can split paths between the filename extension and the rest of the filename. (#2721) (Thanks to @powercode!) - Implement
Format-Hexin C# along with some behavioral changes to multiple parameters and the pipeline. (#3320) (Thanks to @MiaRomero!) - Add
-NoProxyto web cmdlets so that they ignore the system-wide proxy setting. (#3447) (Thanks to @TheFlyingCorpse!) - Fix
Out-Default -Transcriptto properly revert out of theTranscribeOnlystate, so that further output can be displayed on Console. (#3436) (Thanks to @PetSerAl!) - Fix
Get-Helpto not return multiple instances of the same help file. (#3410)
Interactive fixes
- Enable argument auto-completion for
-ExcludePropertyand-ExpandPropertyofSelect-Object. (#3443) (Thanks to @iSazonov!) - Fix a tab completion bug that prevented
Import-Module -n<tab>from working. (#1345)
Cross-platform fixes
- Ignore the
-ExecutionPolicyswitch when running PowerShell on non-Windows platforms because script signing is not currently supported. (#3481) - Standardize the casing of the
PSModulePathenvironment variable. (#3255)
JEA fixes
- Fix the JEA transcription to include the endpoint configuration name in the transcript header. (#2890)
- Fix
Get-Helpin a JEA session. (#2988)
v6.0.0-alpha.17 - 2017-03-08
- Update PSRP client libraries for Linux and Mac.
- We now support customer configurations for Office 365 interaction, as well as NTLM authentication for WSMan based remoting from Linux (more information here). (#3271)
- We now support remote step-in debugging for
Invoke-Command -ComputerName. (#3015) - Use prettier formatter with
ConvertTo-Jsonoutput. (#2787) (Thanks to @kittholland!) - Port
*-CmsMessageandGet-PfxCertificatecmdlets to Powershell Core. (#3224) powershell -versionnow returns version information for PowerShell Core. (#3115)- Add the
-TimeOutparameter toTest-Connection. (#2492) - Add
ShouldProcesssupport toNew-FileCatalogandTest-FileCatalog(fixes-WhatIfand-Confirm). (#3074) (Thanks to @iSazonov!) - Fix
Test-ModuleManifestto normalize paths correctly before validating.- This fixes some problems when using
Publish-Moduleon non-Windows platforms. (#3097)
- This fixes some problems when using
- Remove the
AliasProperty "Count"defined forSystem.Array.- This removes the extraneous
Countproperty on someConvertFrom-Jsonoutput. (#3231) (Thanks to @PetSerAl!)
- This removes the extraneous
- Port
Import-PowerShellDatafilefrom PowerShell script to C#. (#2750) (Thanks to @powercode!) - Add
-CustomMethodparameter to web cmdlets to allow for non-standard method verbs. (#3142) (Thanks to @Lee303!) - 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"toSystem.Diagnostics.Process. (#2850) (Thanks to @powercode!) - Fix crash when converting a recursive array to a bool. (#3208) (Thanks to @PetSerAl!)
- 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
InitialSessionStateobject to create another Runspace. (#3141) - Fix
PSModuleInfo.CaptureLocalsto not doValidateAttributecheck when capturing existing variables from the caller's scope. (#3149) - Fix a race bug in WSMan command plug-in 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 start-up. (#3204) (Thanks to @kwiknick!)
- Fixed spelling for the property name
BiosSerialNumberforGet-ComputerInfo. (#3167) (Thanks to @iSazonov!)
v6.0.0-alpha.16 - 2017-02-15
- Add
WindowsUBRproperty toGet-ComputerInforesult - Cache padding strings to speed up formatting a little
- Add alias
Pathto the-FilePathparameter ofOut-File - Fix the
-InFileparameter ofInvoke-WebRequest - Add the default help content to powershell core
- Speed up
Add-Typeby crossgen'ing its dependency assemblies - Convert
Get-FileHashfrom script to C# implementation - Fix lock contention when compiling the code to run in interpreter
- Avoid going through WinRM remoting stack when using
Get-ComputerInfolocally - Fix native parameter auto-completion for tokens that begin with a single "Dash"
- Fix parser error reporting for incomplete input to allow defining class in interactive host
- Add the
RoleCapabilityFileskeyword for JEA support on Windows
v6.0.0-alpha.15 - 2017-01-18
- Use parentheses 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
PlatformNotSupportedon IoT for Get/Import/Export-Counter - Add
-Groupparameter toGet-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-RestMethodimprovements for non-XML non-JSON input- PSRP remoting now works on CentOS without addition setup
v6.0.0-alpha.14 - 2016-12-14
- 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 ValidateNotNullOrEmptyto approximately 15 parametersNew-TemporaryFileandNew-Guidrewritten in C#- Enable client side PSRP on non-Windows platforms
Split-Pathnow works with UNC roots- Implicitly convert value assigned to XML property to string
- Updates to
Invoke-Commandparameters when using SSH remoting transport - Fix
Invoke-WebRequestwith non-text responses on non-Windows platforms Write-Progressperformance improvement fromalpha13reverted because it introduced crash with a race condition
v6.0.0-alpha.13 - 2016-11-22
- Fix
NullReferenceExceptionin binder after turning on constrained language mode - Enable
Invoke-WebRequestandInvoke-RestMethodto not validate the HTTPS certificate of the server if required. - Enable binder debug logging in PowerShell Core
- Add parameters
-Topand-BottomtoSort-Objectfor Top/Bottom N sort - Enable
Update-HelpandSave-Helpon Unix platforms - Update the formatter for
System.Diagnostics.Processto not show theHandlescolumn - Improve
Write-Progressperformance 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-UptimetoMicrosoft.PowerShell.Utility - Make
Out-Nullas fast as> $null - Add DockerFile for 'Windows Server Core' and 'Nano Server'
- Fix WebRequest failure to handle missing ContentType in response header
- Make
Write-Hostfast 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 | grepdoesn't block - Make
Write-Informationaccept 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
ReflectionTypeLoadExceptionin type name auto-completion - Update build scripts to support win7-x86 runtime
- Move PackageManagement code/test to oneget.org
v6.0.0-alpha.12 - 2016-11-03
- Fix
Get-ChildItem -Recurse -ErrorAction Ignoreto ignore additional errors - Don't block pipeline when running Windows EXE's
- Fix for PowerShell SSH remoting with recent Win32-OpenSSH change.
Select-Objectwith-ExcludePropertynow implies-Property *if -Property is not specified.- Adding ValidateNotNullOrEmpty to
-Nameparameter ofGet-Alias - Enable Implicit remoting commands in PowerShell Core
- Fix GetParentProcess() to replace an expensive WMI query with Win32 API calls
- Fix
Set-Contentfailure to create a file in PSDrive under certain conditions. - Adding ValidateNotNullOrEmpty to
-Nameparameter ofGet-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-WinEventto 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 .Net Core preview1-24530-04
v6.0.0-alpha.11 - 2016-10-17
- 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 read-only 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
v6.0.0-alpha.10 - 2016-09-15
- Fix passing escaped double quoted spaces to native executables
- Add DockerFiles to build each Linux distribution
~/.config/PowerShellcapitalization bug fixed- Fix crash on Windows 7
- Fix remote debugging on Windows client
- Fix multi-line input with redirected stdin
- Add PowerShell to
/etc/shellson installation - Fix
Install-Moduleversion comparison bug - Spelling fixes
v6.0.0-alpha.9 - 2016-08-15
- Better man page
- Added third-party and proprietary licenses
- Added license to MSI
v6.0.0-alpha.8 - 2016-08-11
- PowerShell packages pre-compiled with crossgen
Get-Helpcontent addedGet-Helpnull reference exception fixed- Ubuntu 16.04 support added
- Unsupported cmdlets removed from Unix modules
- PSReadline long prompt bug fixed
- PSReadline custom key binding bug on Linux fixed
- Default terminal colors now respected
- Semantic Version support added
$env:fixed for case-sensitive variables- Added JSON config files to hold some settings
cdwith no arguments now behaves ascd ~ConvertFrom-Jsonfixed for multiple lines- Windows branding removed
- .NET CoreCLR Runtime patched to version 1.0.4
Write-Hostwith unknown hostname bug fixedpowershellman-page added to packageGet-PSDriveported to report free space- Desired State Configuration MOF compilation ported to Linux
- Windows 2012 R2 / Windows 8.1 remoting enabled
v6.0.0-alpha.7 - 2016-07-26
- Invoke-WebRequest and Invoke-RestMethod ported to PowerShell Core
- Set PSReadline default edit mode to Emacs on Linux
- IsCore variable renamed to IsCoreCLR
- Microsoft.PowerShell.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 added back for Windows
- Get-ComputerInfo cmdlet added back for Windows
v0.6.0 - 2016-07-08
- Targets .NET Core 1.0 release
- PowerShellGet enabled
- [system.manage] completion issues fixed
- AssemblyLoadContext intercepts dependencies correctly
- Type catalog issues fixed
- Invoke-Item enabled for Linux and OS X
- Windows ConsoleHost reverted to native interfaces
- Portable ConsoleHost redirection issues fixed
- Bugs with pseudo (and no) TTY's fixed
- Source Depot synced to baseline changeset 717473
- SecureString stub replaced with .NET Core package
v0.5.0 - 2016-06-16
- Paths given to cmdlets are now slash-agnostic (both / and \ work as directory separator)
- Lack of cmdlet support for paths with literal \ is a known issue
- .NET Core packages downgraded to build rc2-24027 (Nano's build)
- XDG Base Directory Specification is now respected and used by default
- Linux and OS X profile path is now
~/.config/powershell/profile.ps1 - Linux and OS X history save path is now
~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt - Linux and OS X user module path is now
~/.local/share/powershell/Modules - The
~/.powershellfolder is deprecated and should be deleted - Scripts can be called within PowerShell without the
.ps1extension Trace-Commandand associated source cmdlets are now availableCtrl-Cnow breaks running cmdlets correctly- Source Depot changesets up to 715912 have been merged
Set-PSBreakPointdebugging works on Linux, but not on Windows- MSI and APPX packages for Windows are now available
- Microsoft.PowerShell.LocalAccounts is available on Windows
- Microsoft.PowerShell.Archive is available on Windows
- Linux xUnit tests are running again
- Many more Pester tests are running
v0.4.0 - 2016-05-17
- PSReadline is ported and included by default
- Original Windows ConsoleHost is ported and replaced CoreConsoleHost
- .NET Core packages set to the RC2 release at build 24103
- OS X 10.11 added to Continuous Integration matrix
- Third-party C# cmdlets can be built with .NET CLI
- Improved symlink support on Linux
- Microsoft.Management.Infrastructure.Native replaced with package
- Many more Pester tests
v0.3.0 - 2016-04-11
- Supports Windows, Nano, OS X, Ubuntu 14.04, and CentOS 7.1
- .NET Core packages are build rc3-24011
- Native Linux commands are not shadowed by aliases
Get-Help -Onlineworksmorefunction respects the Linux$PAGER; defaults tolessIsWindows,IsLinux,IsOSX,IsCorebuilt-in PowerShell variables addedMicrosoft.PowerShell.Platformremoved for the above- Cross-platform core host is now
CoreConsoleHost - Host now catches exceptions in
--commandscripts - Host's shell ID changed to
Microsoft.PowerShellCore - Modules that use C# assemblies can be loaded
New-Item -ItemType SymbolicLinksupports arbitrary targets- PSReadline implementation supports multi-line input
Ctrl-Rprovides incremental reverse history search$Host.UI.RawUInow supportedCtrl-KandCtrl-Yfor kill and yank implementedCtrl-Lto clear screen now works- Documentation was completely overhauled
- Many more Pester and xUnit tests added
v0.2.0 - 2016-03-08
- Supports Windows, OS X, Ubuntu 14.04, and CentOS 7.1
- .NET Core packages are build 23907
System.ConsolePSReadline is fully functional- Tests pass on OS X
Microsoft.PowerShell.Platformmodule is availableNew-Itemsupports symbolic and hard linksAdd-Typenow works- PowerShell code merged with upstream
rs1_srv_ps
v0.1.0 - 2016-02-23
- Supports Windows, OS X, and Ubuntu 14.04