PowerShell, like other shells, is capable of invoking command-line tools. However, it
would improve the experience if the command-line tool could participate in the PowerShell pipeline
and take advantage of the parameter behaviors that are part of PowerShell.
Crescendo provides a framework to rapidly create PowerShell cmdlets that amplify command-line
tools, regardless of platform. The goal of a Crescendo-based module is to create PowerShell cmdlets
that use a command-line tool and, unlike that tool, return PowerShell objects instead of plain text.
How Crescendo works
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 cmdlets you defined. You must write your own output handler functions that return
PowerShell objects.
Crescendo-specific terminology
The documentation for Crescendo includes some new terminology.
command-line tool - a native executable file installed on your system
For example: ipconfig.exe
command - what you type on the command line to invoke the executable, which may include
specific parameters
For example: ipconfig.exe /all
amplified command - the cmdlet you created with Crescendo to wrap a command in a PowerShell
function
For example: Get-IpConfig -All
The Crescendo configuration file schema
When you author a Crescendo configuration file, you're writing JSON. For convenience, validation, and
an improved developer experience, a schema file is available.
You can review the schema to see the required and optional configuration settings, their
descriptions, and the value types they accept. When you author your configuration file in
Visual Studio Code, you get numerous helpful features, including IntelliSense, validation
while you edit, and more.
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
PowerShell feedback
PowerShell is an open source project. Select a link to provide feedback: