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!)
- 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)
- 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)
- 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)
- Fix the JEA transcription to include the endpoint configuration name in the transcript header. (#2890)
- Fix
Get-Helpin a JEA session. (#2988)
- 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!)
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Better man page
- Added third-party and proprietary licenses
- Added license to MSI
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Supports Windows, OS X, and Ubuntu 14.04