Automation & scripting

Run scripts, build workflows, and automate repetitive tasks across your endpoints.

Overview

The Automation & scripting module lets you run scripts on one, many, or all endpoints — on demand or on a schedule. Whether you need to clean up temp files, enforce a registry setting, restart a service, or gather custom diagnostic data, automation gets it done without you having to remote into each machine.

Xcellerate RMM supports PowerShell, Bash, Batch (CMD), and Python scripts. You can store scripts in a shared library, chain them into multi-step workflows, and view detailed execution logs per endpoint.

The script library with search, category tags, and quick-run buttons

Key concepts

  • Script — a reusable block of code stored in the library with a name, description, language, and optional input parameters.
  • Script task — a single execution of a script against one or more endpoints. Tasks are logged with full stdout/stderr output and exit codes.
  • Workflow — an ordered sequence of scripts (and optional approval gates) that run one after another. If a step fails, the workflow can be configured to stop, skip, or retry.
  • Schedule — a cron-like recurrence rule attached to a script or workflow (e.g. "every Monday at 06:00" or "daily at midnight").
  • Script parameter — a variable placeholder (e.g. {{threshold}}) you define in the script. When running or scheduling, the operator fills in the value — no need to edit the script itself.

Step-by-step walkthrough

1

Create a script

Go to Automation → Script library → New script. Give it a name (e.g. "Clear temp files"), choose the language, paste your code, and save. You can tag scripts with categories for easier searching.

2

Test on a single endpoint

Open the script and click Run now. Select one test endpoint, fill in any parameters, and click Execute. The output panel streams stdout and stderr in real time.

3

Run across a group

Once the script works, click Run now again but select a group instead of a single endpoint. Xcellerate runs the script in parallel (configurable concurrency) and collects results per device.

4

Schedule the script

On the script detail page, click Add schedule. Choose a recurrence pattern, select the target group, and save. The script now runs automatically at the specified interval.

5

Review execution history

Go to Automation → History. Each row shows the script name, target, start/end time, status, and a link to view the full output per endpoint.

Execution history with per-endpoint output and exit codes

Building a workflow

Navigate to Automation → Workflows → New workflow. Drag scripts from the library into the workflow canvas in the order you want them to run. Between steps you can add an approval gate (an admin must click Approve before the next step starts) or a condition (e.g. only continue if the previous step exited with code 0).

# Example: restart a service and verify it is running
Restart-Service -Name "Spooler" -Force
Start-Sleep -Seconds 5
$svc = Get-Service -Name "Spooler"
if ($svc.Status -ne "Running") { exit 1 }
exit 0

Tips & best practices

  • Always test scripts on a single endpoint before running at scale — a typo in a cleanup script can cause widespread damage.
  • Use parameters to make scripts reusable (e.g. a "Set registry value" script with {{key}} and {{value}} parameters).
  • Set a timeout on every script task. A hung script can block the agent from processing other tasks.
  • Tag scripts consistently (e.g. "maintenance", "diagnostics", "security") so your team can find them quickly.
  • Use workflows for multi-step operations like "stop service → patch config → restart service → verify health" instead of packing everything into one giant script.
Scripts run with SYSTEM-level privileges on the endpoint. Review all scripts carefully before running them across production environments.