Powershell Crescendo general availability release
On March 10th Microsoft announced the General Availability (GA) release of PowerShell Crescendo, a platform-independent framework to rapidly develop PowerShell cmdlets for common command line tools. The release is available for download in PowerShell Gallery.
PowerShell Crescendo overview
The Crescendo framework allows developers to build PowerShell cmdlets which make use of existing command-line tools. Crescendo upgrades the overall functionality offered by the target command-line tool, by allowing the developer to include object output for the PowerShell pipeline, privilege elevation and integrated help information. A Crescendo module replaces cumbersome command-line tools with PowerShell cmdlets which are superior in terms of automation features and packaging.
The Crescendo framework has two main components:
- A JSON configuration file that describes the cmdlets you want
- Output handler functions that parse the output from the command-line tool and return objects
The Crescendo module provides cmdlets to help you create the JSON configurations and build a module containing the the cmdlets you defined. You must write your own output handler functions that return PowerShell objects.
The GA release includes the following features and benefits:
- Ability to define cmdlets from simple
key/valuestatements in a JSON file
- Support for modular design – cmdlet definitions can be in a one or more JSON files
- A JSON schema that helps you create your Crescendo configuration using IntelliSense and tooltips
- Three styles of output handling code allowing you to separate your code from the cmdlet definitions for easier debugging and development
- Privilege elevation mechanisms in Windows, Linux, and macOS
- Crescendo generates a PowerShell script module ready for deployment
- While Crescendo requires PowerShell 7 or higher for authoring configurations, the generated module can run on Windows PowerShell 5.1 and higher
- Example configurations for you to copy and reuse
- Experimental Help parsers that provide proof-of-concept examples for auto-generating cmdlet configurations