June 2022 - Product Updates and Releases

PowerShell Pro Tools PowerShell Universal Product Updates

June 11, 2022

quote Discuss this Article

This post outlines the new features of PowerShell Pro Tools and PowerShell Universal that have been added in the June 2022 release cycle.

Table of Contents

PowerShell Pro Tools 2022.6.0

PowerShell Protect integration with PowerShell Universal

PowerShell Protect is now integrated into PowerShell Universal. You can generate PowerShell Protect configuration files using the PowerShell Universal Admin Console and consume events generated by PowerShell Protect clients. Additionally, you can trigger scripts based on PowerShell Protect rules.

PSCommander End of Life

PSCommander has reached end of life. You can still download PSCommander but we will no longer be selling licenses or supporting the product. Functionality similar to PSCommander is now offered in PowerShell Universal Desktop.

PowerShell Universal 3.0

PowerShell Universal 3.0 is now generally available! This major release includes support for SQL server, PowerShell Protect integration, updates to .NET and the Material UI framework, new dashboard components and numerous new Desktop features.

Platform

SQL Server Support

PowerShell Universal can now store data within Microsoft SQL Server. Jobs, app tokens, identities and terminal instances can be persisted in a local or remote SQL server. Multiple PSU instances can be connected to the same SQL database and process job queues. This provides scalablity and redudancy.

PowerShell Protect Integration

PowerShell Protect is now integrated into PowerShell Universal. You can generate PowerShell Protect configuration files using the PowerShell Universal Admin Console and consume events generated by PowerShell Protect clients. Additionally, you can trigger scripts based on PowerShell Protect rules.

Notification Improvements

Notifications now have a level associated with them to indicate how important they are. You can also configure which notification levels to receive. Error notifications will also change the icon in the admin console to indicate something is wrong.

Variable Improvements

Variables now support any type of object. While you cannot set anything in the admin console UI, you can set anything in the variables.ps1 file. CLIXML serialization will be used to store the variable data and pass it to APIs, scripts and dashboards.

Live Logging

PowerShell Universal now offers live logging of the server from the settings page.

Access Control UI

You can now configure access controls through the PowerShell Universal Admin Console.

Repository Editor

You can now edit any file within the PowerShell Universal repository folder from within the admin console. You’ll be able to also create and delete files. The VS Code extension also supports this functionality.

Secret Scope for Variables

Secrets are now accessible via the new $Secret: scope in APIs, scripts and dashboards. Rather than loading all secrets when an environment is started, the secrets are loaded on demand. This also means that secrets are available to scripts and dashboards running with alternate credentials.

Invoke-Command -Command { Get-Process } -ComputerName remotemachine -Credential $Secret:Credentials

Upgrade to .NET 6.0

PowerShell Universal is now running .NET 6.0 and PowerShell 7.2.4 for the integrated environment. The upgrade to these versions of the core of the platform bring numerous improvements as well as increased performance.

APIs

Environment support for Endpoints

API endpoints can now be assigned an endpoint. Rather than all the endpoints running in a single environment server-wide, you can now dictate which environments an endpoint runs in. Endpoints that are assigned the same environment will share the same process.

Multiple Methods for Endpoints

API endpoints can now have multiple methods. You can use the $Method variable to determine which method was used when calling the endpoint.

Folder view for APIs

API endpoints can now be viewed in a folder structure. The folders will group endpoints with a similar path.

API Logging

API endpoints now provide live logging. You’ll be able to see requests coming in, capture PowerShell streams and see what is returned.

Automation

Multi-job agent support

When using SQL server for peristence, you can connect multiple PowerShell Universal instances to the same database. In this configuration, they will process jobs among the cluster. This means you can scale out the execution of jobs.

PowerShell Protect Trigger Events

You can now trigger PowerShell Universal jobs when particular PowerShell Protect events are received. You’ll be able to filter by the rule name.

Dashboards

Material UI v5

PowerShell Universal Dashboard has been upgrade to Material UI (MUI) v5. This includes bug fixes, new components and features.

Built in Themes

You can now use Get-UDTheme to return a built in theme. For example, use the AntDesign theme to get a dashboard with the same style as the admin console.

Templates

You can now use the built in templates when creating a dashboard.

Table Improvements

We’ve made improvements to the table like support for Sync-UDElement and support for expandable rows.

Schema Forms

Schema Forms use New-UDForm to define the fields of a form based on a hashtable of properties rather than manually defining the forms fields with UD components. They support numerous types of fields and even support validation.

New-UDForm -Schema @{
   title = "Test Form"
   type = "object"
   properties = @{
       name = @{
           type = "string"
       }
       age = @{
           type = "number"
       }
   }
} -OnSubmit {
   # $EventData.name
   # $EventData.age
}

Icon Improvements

You can now take advantage of all the FontAwesome v6 icons. We’ve also include Find-UDIcon to help search for the icons that are available in UD.

Timeline Component

You can now access the new timeline component of MUI. Display timelines with custom colors or icons.

Desktop

Hotkeys

Associate hotkeys to run scripts within PowerShell Universal. Hotkeys are accessible anywhere in Windows.

File Associations

Associate file extensions with scripts in PowerShell Universal. When you open a file of that type within Windows, it will execute the script in PowerShell Universal and pass the file name to it.

Protocol Handlers

Create custom protocol handlers within PowerShell Universal. Run scripts when a particular protocol URI is called. The script will receive the URI that was called.

System Events

Subscribe to WMI peristent events in PowerShell Universal. Listen for when processes are started or services are stopped. You’ll be able to run a script when this happens and receive information about what happened.

Pages

New Card Component

You can now define cards within your pages. Cards can load data from APIs or jobs.

Smart Properties for Forms

Forms now support smart properties. Smart properties are hashtables that you provide in the output of your API or script that render links or images in a table. For example, setup a form that returns a table and then return a hashtable from a script with the following data to display an image.

@{
    column = @{
       type = "image"
       src = "https://ironmansoftware.com/logo.png"
       height = "10px"
    }
}

PowerShell Universal 2.12.0

Position for New-UDFloatingActionButton

Floating action buttons can now be positioned in one of the four corners of the page.

-DisableSubmitOnEnter for New-UDForm

You can disable the functionality where pressing enter in a textbox submits the form it is a part of.

Added Logoff and Back button to Unauthorized Page

There are now logoff and back buttons on the unauthorized access page within the Admin Console.

Sync-UDElement Support for New-UDTable

New-UDTable now supports reloading data using Sync-UDElement. This is only supported when using server-side processing using the -LoadData parameter. When using Sync-UDElement on a table, it will maintain the table’s state such as the current page and sort direction.