PowerShell Universal v5.0 Beta 1

PowerShell Universal

March 11, 2024

quote Discuss this Article

Today, we are happy to announce the first beta of PowerShell Universal v5. This release includes a number of new features, improvements and changes. We are excited to share these with you and get your feedback. The theme as we move to v5 is to simplify PowerShell Universal by reducing technical debt, removing features that are not widely used or problematic, and focusing on the core value proposition of the platform.

Download Now

PowerShell Universal as a platform and as a user base has grown immensely over the past few years. We have learned a lot from the community. Above all, stability, scalability and consistency of the tools built within PowerShell Universal is fundamental for users of the platform. With the release of v5 our focus is to ensure that we meet these guidelines.

With that said, let’s dive into the new features and changes in v5.

Admin Console

The first major feature in PowerShell Universal v5 is a fresh, new admin console. The new admin console is built with Microsoft’s Blazor technology and provides a modern and responsive experience for managing your PowerShell Universal instance. The new admin console will provide similar experience to end users as the current v4 console as we’ve deciced to use the same design library. By utilizing Blazor, we are able to reduce our technical debt by eliminating the need for a separate JavaScript application. Our backend code can more easily integrate with the UI and allow us to move faster with fewer lines of code. We can also more easily integration test the UI alongside the backend. We’ll be releasing a blog post about our new test suite in the near future.

Additionally, we have started to add translated versions of the console. Our first release will include French translations. Work still needs to be completed to translate strings within the backend service. We will continue to add more languages as we move forward.

Script Library

We are introducing a community focused feature of PowerShell Universal to allow for users to easily share and consume scripts. A new GitHub repository has been created to allow users and Ironman Software to contribute scripts that can be used easily within PowerShell Universal v5. The library will consists of PowerShell Modules that can be installed directly within the platform to add resources.

The library is packaged as a local PowerShell repository (just a folder of NuGet packages) during the build process and then included with PowerShell Universal v5. There are also instructions on how to add it to PowerShell Universal v4 on the README page. We hope this can serve as a source of examples, pre-made solutions and a way to share your work with the community. The library uses our existing module extensibility feature but surfaces them in a way that is more easily discoverable and consumable. They are also included in offline installs.

We will still support the PowerShell Universal Marketplace for the time being but will be focusing on the GitHub repository as the primary source of community scripts.

Blazor Apps

In addition to the new admin console, PowerShell Universal v5 introduces the ability to create Blazor apps. This again reduces the amount of code we need to maintain as apps can now use the same UI investments as the admin console. A declarative XML syntax separates the layout from the logic and reduces the amount of PowerShell that needs to be run to render the UI. This can greatly increase performance and provide further scalability to apps. Blazor apps run directly in PowerShell Universal and will not use external environments. Blazor apps will not replace PowerShell apps but will provide an alternative for users looking for a simpler development experience. There will be no Blazor specific cmdlets, but access to features of apps such as authentication, authorization, and custom variables, will be available. Because the platform is all integrated, we hope to provide avenues for users to extend the admin console with custom features if they see fit.

In addition to reducing the amount of code and simplifying the development process, we can use the structured nature of XML to provide better tooling when visual creating apps. Our visual designer for Blazor apps is already in progress and will allow for drag and drop creation of pages. We will have more information on this feature as we get closer to the release of v5.

We’re still experimenting with this feature and would love feedback.

PowerShell Apps

PowerShell apps are still a core feature of the platform and widely adopted. We will continue to add new components, features and improvements to the existing PowerShell app system. The UD cmdlets remain the same and the system will function just as it did in v4. Your current apps should just work in v5.

We’re releasing some new features for PowerShell Apps to better manage functions and reduce the amount of code that needs to be written directly in the UI code. Documentation is forthcoming.

PostgreSQL Support

We’ve added support for PostgreSQL as a persistence layer for PowerShell Universal. This provides a free database platform to roll out multi-node instances of PowerShell Universal.

Sunsetting of Problematic and\or Underused Features

As PowerShell Universal has grown, we have added many features. Some of these features have not been widely adopted or have caused issues for users without much benefit. We’re looking at adopting a less but better approach to our features. The following features will not be present in v5.

LiteDB Support

LiteDB was the original database we chose when we started development of PowerShell Universal. Over time, we have found that LiteDB has limitations that make it difficult to support. We are removing support for LiteDB in PowerShell Universal v5. SQLite will be the default for small installations and MS SQL and PostgreSQL will be supported for larger installations.

For enterprise workloads, we suggest MS SQL or PostgreSQL.

Pages

Pages were a feature that allowed for creating very basic web pages within PowerShell Universal. The feature proved rigid, was often buggy and required extensive development from our team. It wasn’t widely adopted and is being replaced by Blazor apps.

We are considering developing a migration feature for pages to Blazor apps since the two features are similar in nature but will only do so based on customer demand.

PowerShell App Designer

The PowerShell App Designer was a way to create v4 Apps with a drag and drop designer. Due to the limitations of the designer and underlying definition of apps, it made it problematic to use and support. It didn’t really provide the level of control that users needed and was often difficult to use.

Desktop

PowerShell Universal Desktop offered a way to run PowerShell Universal as a desktop application. With the idea of running PSU as the current user and not as a service, this allowed for user specific resources like hotkeys and system events. We have adjusted our v5 installer to allow for this kind of installation but will not implement the desktop features in the v5 release. You’ll still be able to run scripts and create UIs that run as your user but have dropped support for features such as web view, tray icons and hot keys.

v5 Roadmap

We expect PowerShell Universal v5 to be released in Q3 of 2024. We will be releasing beta versions leading up to the release and accepting issues and feedback on our GitHub repository.

Through our beta process, we will be adding additional features for evaluation before the final release. These will likely include:

Please note that the features listed in the article and the roadmap are subject to change. We will be evaluating the features as we move through the beta process and may adjust the roadmap based on customer feedback. Through the v5 beta process we will also be spending considerable time evaluating the backlog of issues in our tracker to ensure that we are addressing the most important issues for our users and eliminating issues that we will not be implementing.

Updated Version Support

We have decided to extend the support timeline for PowerShell Universal v4 for an additional year. The version will be supported until June 2026. We will continue to implement a limited set of features, provide bug fixes and offer technical support for v4. Version v3 support remains unchanged and will continue through June 2024.

Feedback

Please provide feedback on the beta release on our GitHub issue repository. We’ve created a special tag for the v5 beta. We’ve also enabled discussions if you would like to have a conversation about the beta but don’t necessarily need an issue created.