We are so excited to announce the beta version of Universal Automation. Universal Automation is the job execution and scheduling engine for PowerShell. In this post, we will go over some of the features of UA and how to get up and running.

Installing Universal Automation

You will need to install Universal Automation from the PowerShell Gallery. Universal Automation ships as two PowerShell modules. The UniversalAutomation module contains the UA agent and cmdlets. The UniversalAutomation.Dashboard module contains a Universal Dashboard website that you can use with your UA instance to view job status and manage your UA instance.

Note: You’ll need to install the latest version of PowerShellGet to use the AllowPrerelease flag.

Install-Module UniversalAutomation -AllowPrerelease
Install-Module UniversalAutomation.Dashboard -AllowPrerelease

Getting Started with UA

UA can easily be started by using the Start-UAServer cmdlet. This will open a new PowerShell terminal that will host an ASP.NET Core web app that is the UA agent.

Start-UAServer -Port 1000
Connect-UAServer -ComputerName http://localhost:1000

To start up the dashboard for UA, you’ll use New-UADashboard and specify the web address of the UA server.

$Dashboard = New-UADashboard -ComputerName http://localhost:1000

You can then pass your dashboard to Start-UDDashboard.

Start-UDDashboard -Dashboard $Dashboard -Port 1001

You’ll now be able to create your first script and run it.

$Script = New-UAScript -Name "Hello, World" -ScriptBlock { "Hello, World" }
Invoke-UAScript -Script $Script
Get-UAJob

Navigate to your UA dashboard to see the status of the job, view the contents of the script and schedule the script to run automatically.

Features of UA

UA has been built with PowerShell in mind so it provides tons of great features for automating the execution of PowerShell scripts.

Job Execution and Scheduling

UA runs PowerShell scripts with the ability to schedule them. You can take advantage of CRON expressions or continuous execution schedules to automatically run jobs. Additionally, kick of jobs manually through PowerShell or the UA REST API.

Schedules

Deep Integration with PowerShell

UA reports all kinds of information about a script’s execution and integrates tightly with the PowerShell engine. Instead of just reporting output, you will also be able to handle feedback from cmdlets like Read-Host, view progress from Write-Progress and even retrieve objects that were written to the pipeline.

This means that you don’t need to write your scripts in a special way just to integrate with UA. It integrates with PowerShell for you.

Job waiting for feedback from Read-Host

Persistence

UA uses both git and a small, lightweight database to track scripts as well as job execution. Scripts are stored within an internal git repository so you can track the history of changes within your UA environment. You can optionally connect the internal git repo to a remote so that you can use standard development practices to make changes to scripts outside of UA.

UA also uses LiteDB to track the execution and status of jobs within the UA environment. You’ll be able to see job history, output, and statistics of executions in your environment.

REST API

UA is a web app that can be controlled not only by the cmdlets included within the module but also by any HTTP compatible system. This means that you can integrate easily with heterogeneous systems that can invoke PowerShell scripts and receive feedback without having to actually run PowerShell.

Ready-to-use Dashboard

UA’s ready to use dashboard is built on Universal Dashboard. You can easily view the state of your UA environment within your browser and manage many of the options within UA without having to jump to the console. Because it’s built on UD, you can integrate with authentication services and provide role-based access controls to your UA environment.

Cross-platform and ready for PowerShell 7

UA is a cross-platform module and works on Linux, Mac, and Windows. Just as with UD, you can easily stand up UA in a container, in Azure or anywhere else you’d like to host it.

Learn More

We have a bunch of resources to get started. You can visit the documentation or our YouTube channel to get started today.

Roadmap, Issue Tracker, and Nightly Releases

You’ll be able to find more information about what’s next, file issues and access nightly releases by visiting the GitHub page.

Community

Join the Ironman Software Forums to chat with other users of Universal Automation.

Webinar

We will also be hosting two live webinars next week to showcase the features of UA. It’s open to the first 100 participants. The first one will be at 12:00 PM Mountain Time on January 22nd. The second will be at 6:00 PM Mountain Time on January 22nd. If you can’t make the webinar, we’ll be posting the demo to YouTube after the show.

12:00 PM Mountain Time – January 22nd – https://zoom.us/j/350252517

6:00 PM Mountain Time – January 22nd – https://zoom.us/j/306969593