Introduction
ScriptRunner is a software company based out of Germany invested heavily in the PowerShell community and are the sole sponsor for my Exchange Online PowerShell book. Their primary product, aptly named ScriptRunner, is a tool designed to help automate and delegate common IT tasks, using PowerShell as its foundation. Now out in version 6.x, we find a product that is quite mature, security oriented and focused on making tasks easier for those in IT.
** While they are my sponsor, this review is independent and ScriptRunner has not provided any direction or requirements as to the content of this article. **
Quick Product Breakdown
ScriptRunner has many moving parts that make up the whole of the product and those parts include a web interface, to a desktop app to its own PowerShell module. In the following sections we will briefly break down each part of the application to get a general understanding of the product. We will cover the various interfaces for the product as well as Actions, Queries, Targets, Credentials, Delegations, Scripts, Automation and Settings.
First, let’s quickly review the interfaces that are provided for our use of the product.
Consoles
In total there are three different interfaces for the ScriptRunner product with one configuration console and two administrative consoles. On the administrative side we see that ScriptRunner installs both as a Web interface for those remote admin tasks (headless server perhaps) or a Desktop app for those who want to perhaps access it on the server. Both interfaces look the same, so there is no learning curve for either one.
The third interface, the configuration portal, is designed for the backend configuration needed for the other parts (Desktop and Web Admin apps) to work as expected. Below is the Dashboard portion of this portal:
Let’s dive into each of these interfaces to get a better understanding of each.
ScriptRunner Portal
First, let’s quickly explore the Admin portal where the backend configuration takes place. The default installation for this portal is on the local server and can found at this address:
http://server.domain.com/scriptrunner/portal
After logging in we are presented with the Dashboard for this portal:
The Dashboard does present some summary information for the administrator of the application to review and take action on. On the left pane we have a few tabs that provide access to other configuration changes for the ScriptRunner application. Let’s check out each of these to see what we have to work with.
Run
In the Run tab we see there are some pre-built actions that we can execute in our environment:
We can filter these actions by type (Pinned, ActiveDirectory, EXPL, etc), add an additional ‘tab’ or action, run the action, show reports on the action or edit some details on the actions as well. Clicking on the action will execute it, which may not work if no other configuration work has been performed. Clicking on Reports opens up the Monitoring tab to see reports based on this action. Additionally, if we want to, using the ‘More’ drop down option, we can edit the Delegations or Display Options of the Action.
Authorize and Delegate
In Authorize and Delegate, we can control memberships in the four main Role groups that are present – Main Administrators, Administrators, Help Desk Users and End Users. We can add additional users to any of these using either a group or individual users, depending on the source of the user (AD, AAD, etc.).
Monitoring
Built-in reporting is a great feature to have as we can get an idea what reports were run and pull the reports from this tab directly.
The Statistics tab provides visuals on what actions, scripts, targets, etc were accessed and utilized by ScriptRunner over time:
Lastly, there is a Live Monitor tab that reveals any current operations that are taking place within the product, good for utilization checks and troubleshooting purposes.
Configuration
In the ‘Configuration’ section of the Admin port, we have three active sections – Targets, Scripts and Credentials. Additionally, there are two features that are not quite ready for production – Actions and Queries. Below is a quick review of the ones we can configure
Targets
Targets are defined connection points for scripts running in the product, such as Exchange, local Active Directory and more. Each of these needs to be configured as out of the box no settings are configured, which makes sense as all environments will have different server names, domain names, etc.
With Targets, we can create new objects to manage or use the defaults present in the console. These objects could be, for example, running a local script, connecting remotely via PowerShell, Connecting to Microsoft 365, Azure or more. There is also an option to create a custom connection if we have a specific purpose that is not predefined. Once a connection is created, we can run a test against the connection to validate it works.
Scripts
Scripts used by ScriptRunner are displayed here and from this interface we can either add more scripts or edit the existing scripts to customize them for our needs.
Credentials
Managing credentials in PowerShell scripts is very important due to the potential for misusage and financial consequences of these getting out. ScriptRunner provides a place for us to manage these credentials so they are not stored in scripts in plain text.
Add Credentials.
- Click on the Role
- Click on the ‘User credential or client Secret’
- Enter username and password
- Click ‘Save’ at the top
Settings
In settings we have access to the global settings for the ScriptRunner product and can access these via four tabs as show below.
General
Language choices – English French, German and Spanish.
Tags that can be applied to objects in the ScriptRunner product, such as scripts, credentials and more.
Internal Support information for reference by end users and help desk users of the product.
Script Library – central location for scripts referenced by ScriptRunner.
Connectors
Like Microsoft 365, with ScriptRunner we can add connectors to the product to expand its reach and management capabilities to other products. These connectors are either Web based or email-based connectors:
Licenses
In this tab we can view current licensing or request new licenses.
Product Updates
Browse to Settings > Releases & Updates to download the latest updates, read the product roadmap or previous releases of the product, check out Script Runner extensions (Visual Studio Code for an example):
ScriptRunner Admin Portal
Default Installation location: http://server.domain.com/scriptrunner/admin/
Viewed as a webpage or using the Desktop App, the Admin Portal is where an Administrator performs their work to truly build up a useable automation application for their organization.
In this portal we do have options to add new Actions, Queries, Targets and more, simply by clicking on ‘+NEW’ at the bottom of the interface:
Which is a very useful feature in this portal.
Actions
This is a list view of all of the available actions in an environment. The difference with this portal is that we have more control over the Action with a control bar located at the bottom of the interface. The buttons will light up when thy are available – i.e. an action is selected:
Queries
The Queries interface allows us to create more dynamic elements in ScriptRunner that are more complex than the Actions tab can create. These Queries can be run manually or scheduled:
Targets
In Targets, we can decide where we want to execute our Actions or Queries and ScriptRunner provides these options:
As we can see, there are quite a few pre-built options, but also some allowance for custom ones with the Generic Cloud Service option for example.
Credentials
In this tab we can customize credentials to be used for ScriptRunner, including customizing storage, new passwords and even adding Tags to the credentials for later queries.
Scripts/Cmdlets
Allows an administrator to execute scripts or cmdlets against target systems.
Delegation
Similar to the configuration portal, we see the available delegations in the product, but we can also add new ones if needed as well:
Automation
Create and mange Automation connectors in your environment:
Settings
In this section we can view the licensing configuration, edit tags used in the app, add Help Desk information for the product (your local support contact) and more.
PowerShell
A nice touch it is to see a PowerShell module included in a product that provides management services via PowerShell. In this cast, the module is used for the product’s configuration and is aptly name ‘ScriptRunnerSettings’. We can quick pull a list of cmdlets, like so:
Get-Command | Where Source -eq ScriptRunnerSettings
With this we display a list of 50 cmdlets.
ScriptRunner also has a series of Action Packs that can be found in their GitHub Repository and it is these Action Packs which help prove the value of the product. ScriptRunner provides these precanned solutions to help an administrator manage the configuration of the Script Runner app from the command line.
Action Pack categories in the ScriptRunner GitHub repository.
Documentation and Help
As a long-time advocate for good PowerShell help, any product that can provide easy to use documentation, examples and how-to’s is worth at least a look. ScriptRunner has these covered with their online documentation, documentation links in the portals as well as walk-throughs for setting up an environment.
Documentation / Support link in the Admin Portal:
In addition to these resources, there are
- GitHub Portal – https://github.com/scriptrunner/
- Support Links – https://support.scriptrunner.com
Conclusion
As an IT Consultant with 25 years in the business, one common theme I have seen with most organizations is the need to stretch resources and automate as many tasks as possible. Scripting languages, PowerShell in particular, have also evolved over time where they are now able to perform a plethora of management tasks. Combining an automation application, underpinned by PowerShell, ScriptRunner becomes a very flexible tool that allows Administrators, Help Desk personnel and even end users to complete tasks that have the potential of reducing operating and support costs for an organization. Additionally, built-in flexibility and customization (connectors) allows for some complex support solutions. Go ahead and sign up for a demo today and see if it meets your organization’s needs.
A follow-up article will come out in the next month or so after I’ve had a chance to put the product through some test scenarios.
———————————————————————————————————–
Comments? Questions?
Feel free to leave your Comments below! Learn to more efficiently utilize PowerShell to manage Exchange Server, Exchange Online, Microsoft Defender for Office or Microsoft Purview Compliance portals by picking up frequently updated eBooks: