Remote Execution
Run commands on any enrolled device — or across hundreds of devices simultaneously — directly from the RMM console. All execution is handled securely through the agent; no inbound firewall rules are needed.
Running a Command on a Single Device
- Navigate to Devices and click the target device.
- Click Remote Commands in the device detail tabs.
- Click New Command.
- Select the Command Type (see Supported Shells below).
- Enter your command in the code editor.
- Optionally set:
- Timeout — override the default 300-second timeout (max: 3600 seconds)
- Priority —
low,normal,high, orcritical - Run as SYSTEM — execute with SYSTEM-level privileges on Windows
- Click Run. The job is dispatched immediately.
Output appears in the Job Result panel as it streams in.
Running Commands on Multiple Devices
To execute the same command across many devices at once:
- Navigate to Remote Commands in the left sidebar.
- Click New Command.
- In the Target Devices field, select up to 200 devices or select one or more device groups.
- Configure the command and click Dispatch.
- Each device receives an independent job. Monitor progress in the Jobs list.
You can filter the jobs list by device, status, or time range to track bulk execution results.
Supported Shells
| Command Type | Platform | Notes |
|---|---|---|
powershell | Windows | Runs via powershell.exe -NonInteractive -Command |
shell | Windows | Runs via cmd.exe /c |
bash | macOS, Linux | Runs via /bin/bash -c |
file_transfer | All | Upload a file to the device |
registry | Windows | Read or write registry keys |
PowerShell is the recommended choice for Windows. It supports structured output and is available on all supported Windows versions.
Output Capture and Logging
- Standard output (
stdout) and standard error (stderr) are both captured. - Output is streamed in real time as the command runs.
- Maximum output size: 10 MB per job. Commands that produce larger output are truncated.
- All output is stored and retained for 30 days.
- Output can be downloaded as a plain-text file from the Job Detail view.
Long-Running Job Handling
Commands with a long runtime (e.g., software installs, large file operations):
- The console displays a live progress indicator while the job is running.
- If you close the browser, the job continues running on the device.
- Return to Remote Commands → Jobs to check status and retrieve output.
- Jobs that exceed their timeout are automatically cancelled and marked
timed_out.
Default timeout is 300 seconds (5 minutes). Override per-job or set a different default in Settings → Remote Execution.
Execution History
All remote command executions are logged:
- Navigate to Remote Commands → History.
- Each entry includes:
- Command type and truncated body
- Target device(s)
- Dispatched by (user)
- Dispatch time, start time, end time
- Exit code and status (
completed,failed,timed_out,cancelled)
- Click any job to view full output.
History is also available per device under Device Detail → Remote Commands.
Security
Required Permission
Running remote commands requires the rmm.devices.execute permission. By default this permission is granted to:
ownerroleadminroletechnicianrole (can be revoked per user in Hub IAM)
The viewer role cannot execute remote commands.
SYSTEM Execution
Enabling Run as SYSTEM executes the command under the NT AUTHORITY\SYSTEM account on Windows, which has full local system privileges. Use only when the operation requires elevated access (e.g., installing software, modifying protected registry keys).
Audit Trail
Every remote command execution is written to the RMM audit log with:
- User who dispatched the command
- Full command body
- Device(s) targeted
- Timestamp and result
Audit logs are retained for 1 year and are accessible under Reports → Audit Log.