Important
Crescendo project is no longer being actively maintained by the team. Future releases or updates are unlikely.
We want to thank everyone who experimented with the project, filed issues, and provided feedback.
The repository will remain available in its current state for reference, but:
- Issues and pull requests are not being monitored
- No new features or bug fixes are planned
- The project should be considered archived from an engineering standpoint
You can use the Discussions in GitHub to dicuss the future of the project.
We will update this notice if the status of the project changes.
Crescendo is a development accelerator enabling you to rapidly build PowerShell cmdlets that leverage existing command-line tools. Crescendo amplifies the command-line experience of the original tool 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 that are easier to use in automation and packaged to share with team members.
The 1.0.0 release includes the following features:
- 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
The 1.1.0 release adds the following features:
- New schema to support additional parameter properties
- Added
Export-CrescendoCommandcmdlet - Added NoClobber parameter to
Export-CrescendoModule - Added the ability to bypass all output handling
- Added the ability to handle native command errors in the output handler
- Added the ability to transform arguments
Requirements:
- Microsoft.PowerShell.Crescendo requires PowerShell 7.0 or higher
To install Microsoft.PowerShell.Crescendo:
Install-Module -Name Microsoft.PowerShell.CrescendoTo install Microsoft.PowerShell.Crescendo using the new PowerShellGet.v3
Install-PSResource -Name Microsoft.PowerShell.CrescendoTo get started using Crescendo, check out the documentation.
For a detailed walkthrough using Crescendo, see this excellent blog series from Sean Wheeler - Thanks Sean!
- Crescendo on the PowerShell Community Blog.
Release announcements on the PowerShell Blog.
- Dec-2022 - Crescendo 1.1.0-Preview01
- Mar-2022 - Crescendo 1.0.0 GA
- Dec-2021 - Crescendo.RC
- Oct-2021 - Crescendo.Preview.4
- Jul-2021 - Crescendo.Preview.3
- May-2021 - Crescendo.Preview.2
- Dec-2020 - Crescendo.Preview.1
Please see our Code of Conduct before participating in this project.
For any security issues, please see our Security Policy.