Microsoft Releases PowerShell Crescendo Preview To Facilitate Native Command Wraps

Microsoft this week announced a preview of PowerShell Crescendo, a new module for PowerShell that aims to wrap so-called "native" utility applications via the familiar verb-noun syntax used in PowerShell cmdlets.

The idea is to make invoking these utilities more plain, like PowerShell, without having to dive deeply into a coding project to get it done. PowerShell Crescendo is a module that needs to be added to PowerShell in order to use it. It'll work with PowerShell 7 or greater or Windows PowerShell 5.1 or greater, but users can only write a module when they've got PowerShell 7.

The announcement characterized PowerShell Crescendo as a "framework" that will work across platforms: "We are pleased to announce the first preview of PowerShell Crescendo, a framework to rapidly develop PowerShell cmdlets for native commands, regardless of platform," stated Jason Helmick, a program manager on the PowerShell team.

Of course, IT pros can just use native tools as is, such as the "kubectl, docker or netsh.exe" commands. The idea behind PowerShell Crescendo seems to be that those tools can be too complex and idiosyncratic compared with PowerShell's more simple structure. However, there can be issues with wrapping those native commands in a PowerShell script, and apparently that's what the PowerShell Crescendo preview addresses. PowerShell, for instance, expects the output to be an object with properties, rather than a JavaScript Object Notation (JSON) file.

However, users will need to create a JSON file into order to write a PowerShell Crescendo module, Microsoft's announcement explained:

To author a Crescendo module, you create a JSON configuration file describing how you want the native command projected as a cmdlet. You need the Microsoft.PowerShell.Crescendo module to build the finished module containing the Crescendo proxy cmdlets.

The thinking leading up to PowerShell Crescendo is outlined in two June articles titled, "Native Commands in PowerShell -- a New Approach" (Part 1 and Part 2), authored by Jim Truher, a senior software engineer on the PowerShell Core team. The articles elicited some skeptical comments. One person suggested that a "wrapper function gives very little value for the task, but introduces dependencies and more potential ways to fail."

Nevertheless, it seems Microsoft has soldiered onward, coming out with the PowerShell Crescendo preview.

A question on who might be interested in using PowerShell Crescendo was raised by Veronique Lengelle, a Microsoft Most Valuable Professional (MVP), in this Twitter post. In response, Azure MVP Olivier Miossec said that the tool makes sense to use when there's a need to capture text output. Others felt it would be useful for use with tools like Docker and Robocopy.

About the Author

Kurt Mackie is senior news producer for 1105 Media's Converge360 group.


  • Microsoft and SAP Enhance Partnership with Teams Integration

    Microsoft and SAP this week described continuing partnership efforts on Microsoft Azure, while also planning a Microsoft Teams integration with SAP's enterprise resource planning product and other solutions.

  • Blue Squares Graphic

    Microsoft Previews Azure IoT Edge for Linux on Windows

    Microsoft announced a preview of Azure IoT Edge for Linux on Windows, which lets organizations tap Linux virtual machine processes that also work with Windows- and Azure-based processes and services.

  • How To Automate Tasks in Azure SQL Database

    Knowing how to automate tasks in the cloud will make you a more productive DBA. Here are the key concepts to understand about cloud scripting and a rundown of the best tools for automating code in Azure.

  • Microsoft Open License To End Next Year for Government and Education Groups

    Microsoft's "Open License program" will end on Jan. 1, 2022, and not just for commercial customers, but also for government, education and nonprofit organizations.

comments powered by Disqus