https://github.com/limehawk/rmm-scripts
Production-ready PowerShell and Bash scripts for RMM platforms (SuperOps, Datto, NinjaRMM)
https://github.com/limehawk/rmm-scripts
automation bash datto msp ninjarmm powershell rmm scripts superops
Last synced: 9 days ago
JSON representation
Production-ready PowerShell and Bash scripts for RMM platforms (SuperOps, Datto, NinjaRMM)
- Host: GitHub
- URL: https://github.com/limehawk/rmm-scripts
- Owner: limehawk
- License: gpl-3.0
- Created: 2025-11-02T10:10:49.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-01-29T23:39:28.000Z (16 days ago)
- Last Synced: 2026-01-30T05:20:49.289Z (16 days ago)
- Topics: automation, bash, datto, msp, ninjarmm, powershell, rmm, scripts, superops
- Language: PowerShell
- Size: 1.17 MB
- Stars: 15
- Watchers: 0
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
```
██╗ ██╗███╗ ███╗███████╗██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗
██║ ██║████╗ ████║██╔════╝██║ ██║██╔══██╗██║ ██║██║ ██╔╝
██║ ██║██╔████╔██║█████╗ ███████║███████║██║ █╗ ██║█████╔╝
██║ ██║██║╚██╔╝██║██╔══╝ ██╔══██║██╔══██║██║███╗██║██╔═██╗
███████╗██║██║ ╚═╝ ██║███████╗██║ ██║██║ ██║╚███╔███╔╝██║ ██╗
╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝
```
# RMM Scripts
A collection of production-ready PowerShell scripts optimized for Remote Monitoring and Management (RMM) platforms including SuperOps, Datto, and NinjaRMM.
## About
This repository contains PowerShell and Bash automation scripts designed specifically for RMM environments. All scripts follow the **Limehawk Script Framework**, ensuring consistency, reliability, and production-readiness across the entire collection.
## Limehawk Script Framework
All scripts in this repository adhere to the **Limehawk Script Framework** for RMM scripting. This methodology ensures:
- **Hardcoded inputs** - No param blocks or command-line arguments; all configuration is defined within the script
- **Comprehensive documentation** - Every script includes a detailed README/CHANGELOG block with purpose, behavior, prerequisites, and examples
- **Structured console output** - Clear, parseable output with labeled sections and key-value formatting
- **Robust error handling** - Uses `$ErrorActionPreference = 'Stop'` with contextual error messages
- **Production-ready code** - No secrets in logs, proper validation, and consistent exit codes
For complete guidelines, see:
- [PowerShell Script Guidelines](docs/powershell_script_guidelines.md)
- [Bash Script Guidelines](docs/bash_script_guidelines.md)
## Scripts
For detailed documentation on all available scripts, please visit the **[Wiki](https://github.com/limehawk/rmm-scripts/wiki)**.
### Script Categories
- **System Administration** - Disk analysis, BitLocker management, hardware reporting, system maintenance
- **Installation & Updates** - MSI deployment, winget installation
- **Device Management** - Device renaming, reboot scheduling, admin account management
- **Monitoring & Reporting** - Speed testing, product key extraction, workstation information
- **RMM Agent Management** - Agent installation and removal
Browse the [complete script index](https://github.com/limehawk/rmm-scripts/wiki) with detailed documentation for each script including prerequisites, configuration, usage examples, and more.
## Usage
### Running Scripts in RMM Platforms
1. **Review the script** - Each script contains a README block at the top with:
- Purpose and behavior description
- Required inputs (hardcoded values to modify)
- Prerequisites and permissions needed
- Example output
2. **Configure hardcoded inputs** - Edit the variables section after `Set-StrictMode` to match your environment:
```powershell
# Example - modify these values as needed
$apiKey = 'your-api-key-here'
$targetPath = 'C:\Your\Path'
$timeout = 300
```
3. **Deploy to RMM** - Upload the script to your RMM platform (SuperOps, Datto, NinjaRMM, etc.)
4. **Execute and monitor** - Run the script and review console output for status
- Exit code 0 = Success
- Exit code 1 = Failure
- Check `[ ERROR OCCURRED ]` sections for troubleshooting
### Local Testing
```powershell
# Run in PowerShell with appropriate permissions
.\scripts\script_name.ps1
```
## Creating New Scripts
To create new scripts following the Limehawk Script Framework:
1. **Review the guidelines** - Read [PowerShell](docs/powershell_script_guidelines.md) or [Bash](docs/bash_script_guidelines.md) guidelines
2. **Follow the 4-phase approach**:
- **Understand** - Define the automation task and requirements
- **Architect** - Design operational phases and error handling
- **Structure** - Create README block and console sections
- **Generate** - Write production-ready code
3. **Use the quality checklist**:
- README has all required sections (80 = rulers, 62 - dividers)
- Filename uses snake_case convention
- All inputs are hardcoded
- Input validation is present
- Console sections match operations
- Error handling provides context
- No secrets in output
## Contributing
Contributions are welcome! When submitting scripts:
1. **Follow the framework** - All scripts must comply with the Limehawk Script Framework
2. **Include comprehensive README** - Document purpose, inputs, behavior, and examples
3. **Test thoroughly** - Ensure scripts work in target RMM environments
4. **Use descriptive commit messages** - Explain what the script does and why
5. **No secrets** - Never commit API keys, passwords, or sensitive credentials
## File Naming Convention
All scripts use snake_case naming:
- ✅ `speedtest_to_superops.ps1`
- ✅ `windows_update_check.ps1`
- ✅ `chrome_installer.ps1`
- ❌ `SpeedTest-To-SuperOps.ps1`
- ❌ `WindowsUpdateCheck.ps1`
## License
This repository is provided as-is for use in RMM environments. Review and test all scripts before production deployment.
## Support
For issues or questions:
- Review the script's README block for troubleshooting guidance
- Check the Limehawk Script Framework guidelines for scripting standards
- Open an issue for bug reports or feature requests