Microsoft on Thursday released a preview version of PowerShell 7, its command-line shell and scripting language for administrators. The software was once was limited to Windows but opened up to Linux (including arm64) and macOS three years ago.

Steve Lee, principal software engineering manager, announced the software's availability in conjunction with a roadmap of future features. He said the next preview release will follow in accordance with the established monthly release cadence; preview 2 is expected mid-July.

The full list of changes has been posted on GitHub, a recently purchased estate and code storage facility in the Microsoft empire.

Lee said moving from .Net Core 2.1 to .Net Core 3.0 represents the most notable change, one that improves performance and delivers various new APIs, albeit Windows-focused ones like WPF and WinForms.

Back in 2016, Microsoft open sourced PowerShell, previously available through the Windows-only .NET framework, and made it available through the cross-platform .Net Core framework. As that transition wraps up, the company is working to put the .Net Core version on equal footing with its Windows-focused ancestor.

"A big focus of PowerShell 7 is making it a viable replacement for Windows PowerShell 5.1," said Lee. "This means it must have near parity with Windows PowerShell in terms of compatibility with modules that ship with Windows."

To take advantage of the full range of Windows PowerShell modules, you'll of course need Windows 10 or the equivalent Windows Server.

Looking beyond Windows, however, appears to have briefly pushed PowerShell into the top 50 programming languages in March, as ranked by TIOBE. Since that high-water mark, it has retreated back into its former relative obscurity.

Microsoft, said Lee, is focused on delivering features related to simplifying the secure management of credentials, logging to remote machines, and notification of new versions, which can help with security.

Lee encourages developers to submit RFC for desired features and said there are a number of features he hopes PowerShell developers will be able to deliver as experimental options in future releases including improved default error formatting, control operators for chaining commands, a ubiquitous -OnError {ScriptBlock} parameter, ternary conditionals, null conditional assignment and a parallel For-Each-Object.

Lee also said his team is working to move PowerShell for Azure Functions from preview to general availability.

PowerShell has been Microsoft's favored mechanism for managing Azure services, but with its improvements to Azure Portal, PowerShell has a rival. ®