Microsoft announced that PowerShell Crescendo has hit general availability (GA) this month. The new open-source module first launched in preview back in 2020, and it lets developers quickly build PowerShell cmdlets that leverage existing command-line tools.
The Redmond giant explains that native tools (such as kubectl, Docker, and netsh.exe) can be sometimes more complex to understand than PowerShell’s simple structure. Moreover, developers may run into issues when wrapping those native commands in PowerShell scripts. The new framework provides a simpler solution that should help to address all these issues.
“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 PowerShell team explained on GitHub.
PowerShell Crescendo version 1.0 includes new features and capabilities for both developers and IT Admins. With this release, it is now possible to use simple “key/value” statements for defining cmdlets for JSON files. This release also brings privilege elevation support for all platforms including Windows, macOS, and Linux.
Moreover, Microsoft has added a JSON schema that should make it easier for developers to create Crescendo configuration files via IntelliSense and tooltips. Other improvements include modular design support, experimental Help parsers, and example configurations.
Microsoft has noted that the new framework requires PowerShell 7 or newer for creating the JSON configuration files. However, users will need to run the generated Crescendo script module on Windows PowerShell 5.1 and higher.
If you’re interested in utilizing PowerShell Crescendo, you can learn more on how to get started on this support page. You can also check this blog series published by Sean Wheeler that explains how to create a PowerShell Crescendo script module.