Upping the Automation Ante with PowerShell Universal


The Best WordPress plugins!

1. WP Reset

2. WP 301 Redirects

3. WP Force SSL

Automation is the new buzzword in IT and PowerShell Universal has been a popular automation platform for many years. However, as our industry continues to mature, it’s time to consider “what comes next?” What are the best avenues for continued growth?

The “powershell universal dashboard examples” is a tool that allows users to automate tasks. The tool is free, but the author offers paid plans for more advanced automation.

Upping the Automation Ante with PowerShell Universal

PowerShell Universal may be the answer for you if you’re a PowerShell aficionado who needs to create practical but attractive online apps utilizing your PowerShell expertise.

PowerShell Universal is a web-based, cross-platform solution for creating PowerShell tools to help you run your company. There are three primary characteristics of PowerShell Universal:

  • REST APIs allow any platform that can interact via HTTP to execute scripts (s).
  • Automation
  • Interfaces for users

It’s a one-stop shop for all things automated! Does this pique your interest? If that’s the case, let’s get started with PowerShell Universal.

This article is sponsored by IronMan Software. If you like what you see, go visit the PowerShell Universal website for additional information!

PowerShell Universal Installation and Launch

You’re incorrect if you assume PowerShell (and PowerShell Universal) is exclusive for Windows. PowerShell Universal comes with a variety of installation options that wowed me right away. PowerShell Universal is available for Windows, macOS, and Linux.

Do you have a way for installing software that you prefer? You’re presumably covered by PowerShell Universal. PowerShell Universal may be installed through MSI, ZIP, Chocolatey, IIS, or even by downloading and running it within a Docker container.

Because I didn’t need to run PowerShell Universal in any particular situation, I elected to install it on a Windows Server 2016 server using the MSI installation option for Windows for this evaluation.

Launch PowerShell Universal by going to http://localhost:5000 in your web browser after it’s installed (assuming you’re on the same system as me). After the first installation, you may log in with the admin account and establish whatever password you choose.

Don’t be concerned. As you’ll see later in this review, you have a variety of alternatives for protecting access.

PowerShell Universal's home screen PowerShell Universal’s home screen

After you log on, you are presented with a interface that is simple to utilize. You’ll see that much of the functionality is grouped on the left-hand sidebar, with the three main components coming first; APIs, Automation, and Interfaces for users.

interface that is simple to utilizeinterface that is simple to utilize

Install your license if you haven’t already.

Even if you don’t have to pay for and install a license, you’re losing out on a lot of useful features. PowerShell Universal offers a simple per-server license plan that you should look into to guarantee you get all of the capabilities this program has to offer.

I like it when products, such as PowerShell Universal, give free choices. You may assess and understand how the product could help you before making a purchase.

It’s easy to install a license; just submit a text file.

PowerShell Universal: Adding a License PowerShell Universal: Adding a License

Developing an API

You may use PowerShell Universal to construct an API to run your PowerShell scripts. There’s no need to find out how to connect to a remote system in order to execute PowerShell scripts anymore! With a single REST request, you may now accomplish your goal.

I constructed a small REST API and found it to be pretty straightforward to get started with just a single PowerShell run.

The process of Putting together an endpoint is simple. I gave PowerShell Universal the URL I wanted to utilize and directed it to perform the Get-ComputerInfo command.

Putting together an endpoint Putting together an endpoint

You can see where you can supply the PowerShell to execute in a rudimentary editor in the screenshot below. This is the place where you may paste or write your script. The editor is simple, but it gets the job done.

Endpoint commands are being added. Endpoint commands are being added.

Now all you have to do is call the endpoint it generates, and you’re done! PowerShell Universal gives the same JSON output as if the script were ran locally.

The result from PowerShell Universal is the same. The result from PowerShell Universal is the same.

Developing Scripts

Automation is another functionality included with PowerShell Universal. Automation is defined as a user interface for creating scripts and an execution engine for executing those scripts.

You may give a script several different characteristics when you create it with PowerShell Universal.

  • When searching for a script in PowerShell Universal, a description to define the script’s purpose.
  • A timeout is used to guarantee that the script does not execute indefinitely.
  • If the script fails, a retry limit is set to attempt to run it again.
  • The number of times PowerShell Universal will store the output after each run. This is a great choice for troubleshooting.
  • An environment in which the script will operate.

An environment is the execution area in which your script runs. As you’ll see later, an environment might be utilizing a certain version of PowerShell, a location where specific modules are accessible and where you can define which variables and secrets are exposed to the script.

  • The script should be executed by a certain user.

You may construct variables accessible to your scripts that they can reference as required while Making a Script Schedule (shown later).

Creating a set of credentials that are only known to you Creating a set of credentials that are only known to you

  • Tags that make it easier to discover the script afterwards in PowerShell Universal.
  • A mechanism to stop the script from being run manually.

 manually invoking the script manually invoking the script

The script will most likely be written in another editor, such as Visual Studio Code, and then pasted into the PowerShell Universal editor.

PowerShell Universal has a VS Code plugin that allows you to write scripts in Visual Studio Code and publish them straight to PowerShell Universal.

Visual Studio Code allows you to write scripts.

Visual Studio Code allows you to write scripts.

The Get-Service command produced the following result.

Get-Service is a command that you may use to get information about a service. Get-Service is a command that you may use to get information about a service.

Making a Script Schedule

In Windows, utilizing Task Scheduler or similar third-party program to run scripts on a regular basis is common. To retain PowerShell Universal as your primary execution engine, it offers a built-in scheduler for executing tasks.

Making a Script Schedule in PowerShell Universal Making a Script Schedule in PowerShell Universal

It’s simple to set up a scheduled script, such as by utilizing a CRON phrase. When establishing the scheduled task, PowerShell Universal offers a user-friendly interface. Unlike the task scheduler, you also receive a log history to evaluate the script execution.

Every minute, a script is scheduled to execute. Every minute, a script is scheduled to execute.

Working with Secrets and Variables

You may specify special variables that are only accessible inside a PowerShell Universal environment. The possibility to construct a secret variable, which is an encrypted value like an API key or login and password, seemed appealing to me.

Secret variables are presently only accessible in Windows, and their values are saved in the Windows Credential Manager on the PowerShell Universal host outside of PowerShell Universal.

Make a variable that may be used in scripts. Make a variable that may be used in scripts.

Creating an Interaction Design

If you’ve used PowerShell Universal Dashboard before, you’ll recognize the Interfaces feature of PowerShell Universal. PowerShell Universal now includes the PowerShell Universal Dashboard.

PowerShell Universal Dashboard’s dashboard technology is now integrated into PowerShell Universal that includes the ability to build interactive dashboards, Interfaces for users, integrate your PowerShell scripts and use data from any internal or external source.

Making a web page

A single page is the starting point for the Interfaces feature. We’ve all struggled with developing web pages and putting out pieces using code to make a dashboard or web page at some time. PowerShell Universal’s Pages functionality allows you to construct web pages by dragging and dropping components. There’s no need to code!

Your scripts and REST API may simply interact with the items on your sites!

To illustrate, I made a basic page with a text box, a table to show an API’s result, and an image. In only a few minutes, I was able to create this page. When moving boxes around the screen, I appreciated how smooth it felt.

Adding dynamic elements to a web page Adding dynamic elements to a web page

Using an API to display data in a chart

Let’s imagine you need to show a chart on any page. This graph must display a few widgets with two attributes: Name and Value. To do so, I established the widgets endpoint, which is supplied with the following PowerShell hashtable, which translates to JSON so that PowerShell Universal can appropriately comprehend the data.

JSON output from a hash table JSON output from a hash table

On my web page, I created a Chart with a line, chose the widgets API, and then positioned the chart on the page. This, too, is a simple process that yields excellent results with minimum effort.

Chart with a lineChart with a line

Using an API to display data in a table

You may also want to display the basic widget dataset you prepared before in a table. You may express the data in a table on a web page using the same API. You’ll see that when you use the Toolbox function, you have a few distinct choices, one of which is Table.

From the Toolbox, choose a table.. From the Toolbox, choose a table.

Selecting Table displays a table in which you may choose an API. The API is then invoked by PowerShell Universal, which populates the table as seen below.

Choose an API.Choose an API.

I validated that after the table is established, it immediately shows fresh data by adding to the data supplied by the API.

Using a Button to Invoke a Script

The Interfaces feature may be used to generate a variety of items, one of which is the button. For example, you may need to enable a junior administrator to execute a script using a different account than the one used by the page. You may do this by creating a button that executes the script.

Perhaps you have a script that scans a server for operating services. As illustrated below, you write the script in PowerShell Universal, generate a hidden non-admin credential, and construct a page with a button.

Click on Check Services if you're using a form. Click on Check Services if you’re using a form.

When the junior administrator hits the button, PowerShell Universal runs the script behind it as a non-admin user and displays the results below.

The script is run via PowerShell Universal. The script is run via PowerShell Universal.

Making a Dynamic Web Page

Dynamic pages are a more sophisticated element in the Interfaces section, but they are quite useful. A dynamic page is one that fetches a certain page depending on the URL that the user enters. This page may then access variables that are exclusive to that page and alter based on their values.

Because I like cats, we’ll use a few of cat photos to demonstrate how this works. I’d want to modify the cat picture on a website based on the URL used to access it. To do so, I’d construct a page with the custom/: prefix, as seen below.

A dynamic URL variable is created by using the custom/: prefix followed by a name.

Make a dynamic page that includes a variable. Make a dynamic page that includes a variable.

When the dynamic page is finished, I’ll use the $variable variable to produce an image on the page that refers the URL supplied.

In image control, use the variable.. In image control, use the variable.

You’ll see below that by just changing the URL, my cat page can now display different cat images! If cats aren’t your thing, imagine Making a web page to view different server information just by changing the URL.

Rendering the page with different URL's Different URLs are used to render the page.

This feature appealed to me and I can see numerous applications; nonetheless, it took me some time to get my brain around the notion, and I’d want to see additional examples or explanation on the topic.

PowerShell Universal Security

You may log in as an admin with any password right away. PowerShell Universal, on the other hand, offers a variety of authentication mechanisms. Authenticating users with Azure AD authentication, for example, may be set in the PowerShell Universal interface.

Activating Azure Active Directory Authentication

Authentication using Azure AD, in particular, requires the creation of an Azure AD application. The documentation does a nice job of explaining this setup, but I think a thorough step-by-step would be helpful for folks who are new to setting up authentication on Azure.

Activating Azure Active Directory Authentication Activating Azure Active Directory Authentication

The parameters that need to be adjusted from your Azure AD-registered application are listed below. The parameters shown below were derived from the Azure application registration setup.

Configuration of Azure application registration Configuration of Azure application registration

I had some issues getting PowerShell Universal to work with HTTPS, however they give a hosting tutorial that was quite helpful. But, you may utilize self-signed certificates to evaluate this product; however, self-signed certificates should not be used in a production setting.

Access Control Based on Azure Active Directory Group Membership

All of your Azure users can log in as admin after you’ve set up Azure AD authentication. You may restrict access depending on the group to establish a stronger role-based access control (RBAC) solution.

As an example, you can see below that I have two Azure AD groups. I could then map these groups to PowerShell Universal roles (Administrator, Reader, Execute, and Operator) or design my roles inside PowerShell Universal if I wanted to. When a user logs in, these roles may be confirmed.

Within PowerShell Universal, I need to specify my responsibilities. Within PowerShell Universal, I need to specify my responsibilities.


PowerShell Universal is a feature-rich, strong solution that’s worth checking out. It’s intuitive, yet I discovered lots of answers in the manual when I needed them.

If you’re interested in checking it out, I recommend viewing some of the YouTube tutorials created by PowerShell Universal’s inventor, Adam Driscoll. They do an excellent job of explaining each feature and how to utilize it.

The “powershell universal modules” is a PowerShell module that allows users to use the same set of commands across different platforms. It’s an automation tool that will allow you to automate tasks on Windows, Linux, and MacOS.

Related Tags

  • universal automation powershell
  • powershell universal forum
  • powershell universal license
  • powershell universal dashboard download
  • powershell universal download

Table of Content