PowerShell 7 gets new core, simplified credentials, logging

Microsoft has fleshed out what will be in the next version of PowerShell…by launching its first preview of version 7 of the automation and configuration framework.

As previously promised, PowerShell 7 has shifted to .Net Core 3.0, from .Net Core 2.1. According to the post announcing the preview from Steve Lee, Principal Software Engineering Manager for the PowerShell Team, this means not just “significant performance improvements, but many new APIs are available including WPF and WinForms (Windows only, though!).” It also means that  “(eventually) we can bring back Out-GridView.”

Talking of compatibility, Lee said making PowerShell 7 a “viable replacement for Windows PowerShell 5.1” was a major focus.

“The PowerShell Team will be working with Windows teams to validate and update their modules to work with PowerShell 7,” he continued. “This also means that to use PowerShell 7 with the breadth of Windows PowerShell modules, you will need to be using the latest builds of Windows 10 (and equivalent Windows Server).”

More specific changes include simplifying Secure Credentials Management, and, said Lee, “we intend to introduce a way to securely use credentials from a local or remote based credential store.”

Also, Lee flagged up that currently, logging is local to the machine, and forward events to a remote system was tricky, requiring different configurations per OS. “We want to introduce a way to easily configure PowerShell through policy to automatically send the logs to a remote target regardless of the OS.”

Lee also highlighted the number of GitHub issues marked for consideration for PowerShell 7. However, the team clearly doesn’t anticipate getting round to all  47 open issues.

So Lee did include a list of “requested features we’d like to address in PowerShell 7”. These include improving the default formatting of errors; adding a Ubiquitous -OnError {ScriptBlock} parameter; control operators for chaining commands; ternary conditionals; null conditional assignment; parallel for each object.

Just to drive home the point, Lee listed other projects the PowerShell team is involved in, including getting PowerShell in Azure Functions generally available, and working on the PowerShell Editor Services/Visual Studio Code PowerShell extension.