An enhanced script management plugin for MeshCentral. Forked from ryanblenis/MeshCentral-ScriptTask with significant UI and functionality improvements.
Supports PowerShell, BAT, and Bash scripts on Windows, macOS, and Linux endpoints.
Ensure plugins are enabled in your MeshCentral config:
"plugins": { "enabled": true }Then in MeshCentral: My Server > Plugins > Download plugin and paste:
https://raw.githubusercontent.com/InnovoDeveloper/MeshCentral-ScriptTask/master/config.json
Enable the plugin and restart MeshCentral.
Note: This plugin uses shortName: innovoscripttask and a separate database collection, so it runs side-by-side with the original ScriptTask without conflicts.
- Descriptions on scripts (one-line summary shown in tree and info card)
- Dynamic categories with custom colors (managed from UI, not hardcoded)
- Multi-tag support — each script can have multiple tags
- Category & tag management UI — add, rename (cascades to all scripts), delete
- Search & filter — filter script tree by name, description, or category
- SVG icons for folders and scripts
- Script info card — shows metadata when a script is selected
- Status filter pills: All / Online / Offline / Tagged / Untagged — with live counts
- Online/offline indicators (green/red dot per device)
- Smart tag parsing — auto-discovers key-value pairs from device ServerTags
- Dynamic version filter dropdowns — auto-populated per discovered tag prefix
- Device type filtering — auto-populated from device labels
- Hover tooltips — rich device detail card on mouse hover
- Sortable node list (by name, type, or selection state — preserves checkboxes)
- Resizable columns
- Select/Deselect Visible for bulk operations on filtered results
- Toolbar with SVG icon buttons
- Color-coded category badges and tag chips
- Status badges for job history (Completed, Error, Running, Queued)
- Enhanced queued status shows "device offline" when target is disconnected
- Collapsible return value preview
- Full dark mode / night mode support via CSS variables
- System font stack
- Batch deploy to many devices at once with configurable batch size, interval, and stagger
- Offline device policies: Skip, Defer to next batch, or Queue until online
- Agent heartbeat — devices send heartbeats every 30s while scripts run, preventing false timeouts
- Unresponsive detection — devices that stop sending heartbeats are marked "unresponsive" (amber) instead of "error" (red), indicating the script may have completed but contact was lost
- Configurable timeouts — per-device unresponsive threshold and overall batch timeout; batch timeout auto-extends while any device is still reporting
- Live progress — real-time progress bar, status counts, and per-device status via WebSocket
- Clickable status counts — click any count (ok, failed, unresponsive, skipped) to filter the device list
- Targeted retries — retry only failed, only unresponsive, only skipped, or all at once
- Batch management — pause, resume, cancel, delete batch runs
- Max 2 concurrent batch runs with automatic recovery after server restart
- Selection respects filters — Select All, mesh/type/version checkboxes only affect visible (filtered) nodes
- Run confirmation dialog (shows script name and target device)
- Delete confirmation with folder content warning
- Auto-open history panels after confirming a run
- Script scheduling (one-time, minutes, hourly, daily, weekly)
- Variable substitution (
#varName#) with scope hierarchy (Global > Script > Mesh > Node) - Script caching on agents with hash verification
- Job history (200 events per node/script, 90-day retention)
- Drag-and-drop file upload and script organization
- Orphaned job crash fix (null-check for deleted scripts)
- Dark mode / night mode CSS support
- Modern theme (
default3.handlebars) dialog compatibility
MeshCentral requires the main plugin JS file and the meshcore module to match the shortName:
innovoscripttask.js— server-side entry pointmodules_meshcore/innovoscripttask.js— agent-side module
Apache-2.0 (inherited from original)