As a Windows administrator with expertise in PowerShell, I felt left out of the DevOps scene. Even though Microsoft has come of age lately with their DevOps tooling, the major DevOps tools are still Linux-based and require learning a new language to be proficient with the tools. Discovering ScriptRunner and PowerShell has changed that as us PowerShell geeks can finally join the ranks of DevOps gurus!
ScriptRunner’s main focus is to provide a complete solution that includes development, deployment delegation and automation under one program with PowerShell at its heart. This model fits very well into today’s DevOps-focused environments. The ability to develop, organize and delegate PowerShell scripts frees up a lot of time that might be spent working on more important projects. Admins finally can have the confidence to create and deploy scripts even with limited knowledge of PowerShell!
Table of Contents
Obtaining the Software
Getting a copy of the software is, unfortunately, at best, inconvenient. The company does not allow downloading the software from its website instead of setting up a scheduled demo by providing a company name, email and phone number. For those with an aversion for giving out your email, this might be a problem.
Once the demo is complete though, follow-up emails were quick and informative. ScriptRunner was very diligent in making sure I understood all the features and capabilities of the product.
Installing & Configuration
Installing ScriptRunner’s PowerShell tool is straightforward but, unfortunately, you’ve got three differently installable executables to deal with.
- The RunnerService, which is the brains of ScriptRunner, handles the backend of the application.
- TeamApps installs the client programs for the Delegation App and the Admin App.
- WebApps installs the web-based versions of the Delegation App and Admin App.
One thing I wanted to mention was that when installing the WebApps service, it gives you the option to automatically deploy the web applications to Windows Internet Information Services (IIS), Apache, Nginx, etc. but with those not IIS requiring manual configuration to get everything working.
There are few post-installation steps you’ll optionally need to address too like setting up of your repository folders, synchronization with Git and setting up IIS to host the web applications.
Once you’ve got ScriptRunner set up and running, you’ll also notice a few built-in scripts, called action packs. ScriptRunner provides action packs for services like Active Directory, Azure AD and Office 365 as well. The action packs are great for beginners to use scripts immediately with little optimization.
Documentation is thorough and complete. Not only is context-sensitive help available within the application, but supplementary PDF’s are available that provide more detailed information and example use cases. Support is also available via Phone, Email, and blog. The documentation is great.
The administration application is where the magic happens. The dashboard is clean and uncluttered. The modern “tiled” look logically arranges the actions on the left menu with categories and script count across the top. The dashboard also shows the status of completed scripts, how long each script took to run and whether it failed or not. This interface is sharp.
However, in my opinion, the main dashboard for the administration application is a missed opportunity. This large space can be used more effectively by allowing the option to customize as desired. For example, a couple of KPI indicators, task tracking or a list of hyperlinks of most used resources would be a welcome feature here.
The Delegate App
Another nice feature of ScriptRunner is the Delegate App. This app allows you to convert PowerShell scripts into a point-and-click GUI and assign them to end users. Pretty cool! Users can log in through the console or the web-based application and execute complex scripts. Non-IT users can run PowerShell scripts with little or no knowledge of PowerShell programming which is awesome for those, for some reason, refusing to learn more about PowerShell!
The Delegation App has useful role-based access control allowing only certain users to see the scripts specifically assigned to them or via groups. This feature alone will free up hours of daily administration time!
Ready, Set, DevOps
ScriptRunner is productive from Day 1. As an experienced administrator, I have a large collection of scripts and tools I use daily. Using ScriptRunner, the organization of scripts was almost automatic; copy the scripts into the DEV repository folder, walk through the wizards to add the appropriate tags and assign security. From that point, the scripts are ready for deployment and use by the IT team.
If you use a source code versioning programs like Git or perhaps Azure DevOps, repositories can be synchronized with ScriptRunner either by role (DEV, Production) or tagged by topics like AD, Exchange, O365, and VMware. This is a huge time-saver if you have a lot of scripts and want to make them immediately available to users.
Another nice feature is the is the PowerShell Integrated Scripting Environment (ISE) add-in. This add-in installs a side panel that allows for check-in and check-out of scripts. Additionally, comments can be added and saved providing a simple way to track incremental changes in scripts. This is nice if you have a few scripts or do not want to integrate a source code repository like Git.
By far the most powerful and useful feature is the near-automatic creation of GUI interfaces. By reading the PowerShell parameters from a script and various keywords, ScriptRunner creates the necessary fields and selection boxes. The program parses header, parameter values, and variables to build its windows inputs and dialogs. Following PowerShell best practices, scripts can be optimized to take full advantage of this feature by adding comments, parameter fields, and other details.
One slight drawback of this feature is that the scripts may run a bit slower versus running them in a command line console. This may be attributed to the extra overhead required for ScriptRunner to create and manage the interfaces. This performance hit might be regained by optimizing and streamlining the scripts where ever possible.
The queries allow dynamic input of a parameter by selected preselection. The user no longer has to know the parameter value for the script, e.g. the SamAccountName of a user or the name of a virtual machine, and can enter it manually, but can conveniently select the user from a list. Queries can be directed to different sources:
- Active Directory objects, including trusted and non-trusted domains
- Query scripts with full script flexibility
- Dynamically changing or static files
- Static lists
In a second step after the introduction, it is worth to take a look at the automation connectors. ScriptRunner offers connectors to integrate various third-party systems to map fully automated control loops. The systems integrated with ScriptRunner can trigger an action process-driven, event-based or interactively. Examples therefore are automated calls of monitoring-systems, ITSM-systems, workflow-systems or other applications via WebService Call.
In order to be able to implement an even higher level of security for the credentials, ScriptRunner supports central password safes like CyberArc, Thycotic Secret Server, Pleasant Password Server e.g.
For long-term storage of the reports, the data can be stored in parallel in an external SQL database via
ScriptRunner is a master of organizing, categorizing and delegating scripts. This alone would be worth the price if you have a small team and several dozen scripts that are used daily.
- ScriptRunner is licensed per administrator or Servicedesk user and starts in the smallest scale (10-25 user) at approx. 38.00 dollars per user per month.
- For Self Service end users, the smallest scale (up to 100 users) starts at $2.70 per user per month.
- For SMB customers ScriptRunner offers an alternative one-year subscription for 5 users (1,950.00 USD per year). If users or connectors are needed, you can easily upgrade to the suite.
Certainly, there are less expensive alternatives, however, to get the same functionality of ScriptRunner, it would require several applications to get a similar feature set. Compared to large automation platforms, ScriptRunner is significantly cheaper.
ScriptRunner is a real DevOps tool for PowerShell scripters. If you are looking into automating your administration and support processes easily and securely, you will find a powerful and professional tool here.
More from Adam The Automator & Friends