September - Product Updates and Releases

September 14, 2021

This post outlines the new feature of PowerShell Pro Tools and PowerShell Universal that have been added in the September release cycle.

Table of Contents

PowerShell Pro Tools 2021.9.0

We have released new versions of the entire PowerShell Pro Tools suite of tools. Most of the tools contain small features and bug fixes. The PowerShell Tools for Visual Studio extension has been overhauled to support Visual Studio 2022.

PowerShell Tools for Visual Studio 2022 support

The September release provides new version support for Visual Studio 2022. The preview version of Visual Studio is available from Microsoft. This version of Visual Studio provides 64-bit support for the flagship IDE. PowerShell Tools for Visual Studio can now be used within the new IDE. You will need to install the 2022 version of PoshTools rather than the pre-existing 2017 and 2019 version.

Integrated mode for PowerShell Pro Tools for Visual Studio

You can now select “Integrated” as your PowerShell version within Visual Studio. This will cause PowerShell to run within the IDE itself. If you are running 2017 or 2019, it will be 32-bit and in 2022, it will be 64-bit.

Event log support for PowerShell Protect

PowerShell Protect can now log events to the event log in addition to the existing targets of HTTP, TCP, File system and UDP.

Full Release Notes

For the full release notes for PowerShell Pro Tools, visit our documentation page.

PowerShell Universal 2.3.0

The September release of PowerShell Universal provides many new features built into the existing feature groups. See below for some notable examples.

Improved form control within Pages

The form control has been greatly enhanced in this release. It now interacts with the automation features like feedback, progress, and output. You can even output objects as tables without having to do any coding of the user interface yourself.

OpenAPI documentation for endpoints

Custom endpoints that you create will now be displayed on the Swagger documentation page and provided by the OpenAPI endpoints. Not only can you test your APIs in the Swagger documentation page but you can use tools like AutoRest to automatically build clients for your REST APIs.

DisplayName attributes for script parameters

To improve the usability of the scripts that you provide to your users, you can now specify the DisplayNameAttribute within your scripts to provide friendly names for parameters.

param(
    [ComponentModel.DisplayName("First Name")]
    [Parameter(HelpMessage = "Enter the user's first name")]
    $FirstName
)

Access token support for scripts

When using Open ID Connect to authenticate and issue tokens, you can now receive the access tokens within your scripts. This means that when a user executes a form that triggers a script, you’ll be able to use their access token to perform tasks on their behalf for services like O365 and Azure.

You can reference the access token using the $AccessToken variable if the user logged in with OIDC and had a resource assigned.

Transfer List control for Universal Dashboard

The transfer list control allows you to select items based on two lists. The transfer list works in forms and steppers.

Login page customization from the admin console

The login page can now be customized in the admin console.

Client certificate based authentication

The server can now be configured to accept client certificates. You can then use the details of the certificate within role-based access scripts. You can enable client certificate authorization in appsettings.json.

"ClientCertificate": {
    "Enabled": "true"
},

Support for PowerShell 6.x

PowerShell Universal now supports Windows PowerShell 5.1, PowerShell 6.x, and 7.x. You can use all the environments at once within your PSU instance.

Git synchronization page

Git synchronization information has been moved to it’s own page within the admin console and provides more details about the current configuration.

Ability to refresh elements on dashboards from APIs and scripts

A new cmdlet, Sync-PSUComponent, has been added to allow for the refresh of components on dashboards from APIs and scripts. This means that rather than having a dashboard poll for changes, you can have an API or script notify it when data has changed. Eventually, this functionality will also work on pages.

This example uses a dashboard like this.

New-UDDashboard -Title "Hello, World!" -Content {
    New-UDDynamic -Id 'element' -Content {
        New-UDTypography (Get-Date)
    }
}

The API looks like this.

New-PSUEndpoint -Url "/sync" -Endpoint {
    Sync-PSUComponent -Id 'element'
}

Full Release Notes

For the full release notes for PowerShell Universal, visit our documentation page.

Feedback

If you have feedback, please post on our forums or open an issue on GitHub.