Ironman Software Forums
Continue the conversion on the Ironman Software forums. Chat with over 1000 users about PowerShell, PowerShell Universal, and PowerShell Pro Tools.
This post outlines the new features of PowerShell Pro Tools and PowerShell Universal that have been added in the April 2022 release cycle. This is a big one! 🥳
We have released new versions of the entire PowerShell Pro Tools suite of tools.
We’ve added a new cmdlet to edit PowerShell scripts directly in the console. It provides syntax highlighting, IntelliSense, syntax error checking, and execution.
Show-PSEditor is cross-platform and even works in the browser in terminals like Azure Cloud Shell.
The TUI Designer is now a part of the PowerShell Pro Tools module. Using
Show-TUIDesigner you can create PowerShell-based console GUIs.
The PowerShell Pro Tools for VS Code extension now supports MacOS ARM.
The April release of PowerShell Universal provides many new features built into the existing feature groups. See below for some notable examples.
You can now define API endpoints by path rather than in a single file. Using the
-Path parameter of
New-PSUEndpoint, you can point to an external file that will be called when executing the endpoint.
New-PSUEndpoint -Url '/get' -Method GET -Path 'Get.ps1'
When creating schedules, you can now select the timezone within the admin console.
We’ve added numerous new dashboard features include
PowerShell Universal will now automatically reclaim unused runspaces from APIs and dashboards. When busy, the server will allocate up to the maximum configured runspace count to provide the best performance. When not as busy, the server will reclaim and dispose of these runspaces to reduce the overall memory footprint of PSU.
Improvements have been made to the execution engine in APIs, jobs and dashboards to reduce the script execution time of standard runspace pools by up to 500%.
The PowerShell Universal VS Code extension now provides a walkthrough to configure it and connect to your instance.
We’re happy to announce the first beta of the next major version for PowerShell Universal. With PowerShell Universal v3, we are aiming for a simple upgrade from v2 with numerous new features to the core of the platform.
PowerShell Universal v3 supports configuring SQL Server as the persistence layer for jobs, identities, and app tokens. It also takes advantage of shared job queues so multiple PSU instances can use a single database. This means that your scheduled scripts will only run on one agent at a time without having to manage it yourself.
Universal Dashboard has been upgraded to MUIv5. This is the latest major version of the popular UI framework PowerShell Universal uses for dashboards. We’ve worked to elimate breaking changes and isolate client-side errors that may result from the upgrade. External components like charts, maps, styles, and the code editor are now included directly in the UD framework. You can still install and use third-party components.
We’ve added new components like
New-UDBadge. You’ll also be able to use the theme-aware
-Sx parameter on
New-UDStyle to adjust styles based on your theme rather than just static CSS.
Additionally, you can build complex forms using hashtable-based schemas with
-Schema parameter. You’ll be able to create fields, enforce validation and define the resulting object type just with a hashtable.
$Secret scope can now be used throughout your scripts. Rather than loading secrets when the environment is first loaded (and keeping the values in memory for the duration), secrets are now loaded on demand. You can use the
$Secret scope to access the value of these secrets.
Invoke-Command -ComputerName remote-machine -Credential $Secret:Credential
This helps to improve performance (as reading many secrets can be slow) and improve security posture by reducing the amount of private information stored in memory.
PowerShell Universal now runs on .NET 6.0 and PowerShell 7.2. The latest, stable version of the .NET platform provides performance improvements to both the runtime as well as the web server. PowerShell 7.2 is now the default for the integrated environment.
You can now edit any file within the repository. You can also create and delete files and folders on the fly.
You can now view the live log view on the diagnostics page. Similar to Log Stream in Azure, it provides up to second log messages coming from your PSU server.
You can now configure PowerShell Universal to use the HTTP.sys listener on Windows. Primarily, this is beneficial for users that wish to use Windows Authentication without having to configure SPNs within their environment. HTTP.sys uses kernel-mode authentication so it does not require configuration of SPNs.
You can now configure the service account and port when installing PowerShell Universal using the MSI. Upgrades of PSU will now retain the service account without having to reconfigure it.
We’ve completely refactored the internal communication channel between the PowerShell Universal server and external PowerShell processes. This increases performance by avoiding needless allocations and conversions and reduces the overall source code line count to provide a more managable and less error-prone RPC layer.