Added: - PROJECTS_INDEX.md - Master catalog of 7 active projects - GURURMM_API_ACCESS.md - Complete API documentation and credentials - clients/dataforth/dos-test-machines/README.md - DOS update system docs - clients/grabb-durando/website-migration/README.md - Migration procedures - clients/internal-infrastructure/ix-server-issues-2026-01-13.md - Server issues - projects/msp-tools/guru-connect/README.md - Remote desktop architecture - projects/msp-tools/toolkit/README.md - MSP PowerShell tools - projects/internal/acg-website-2025/README.md - Website rebuild docs - test_gururmm_api.py - GuruRMM API testing script Modified: - credentials.md - Added GuruRMM database and API credentials - GuruRMM agent integration files (WebSocket transport) Total: 38,000+ words of comprehensive project documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
MSP Toolkit - PowerShell Scripts for MSP Technicians
Project Type: Internal Tool / MSP Platform
Status: Production
Technology: PowerShell
Deployment: Web-hosted via azcomputerguru.com
Access Method: One-liner execution via iex (irm ...)
Overview
Collection of PowerShell scripts for MSP technicians, accessible via web for easy remote execution. Designed for quick deployment on client machines without file downloads or installation.
Primary Use Cases:
- Initial system assessment
- Client onboarding
- Troubleshooting and diagnostics
- Automated configuration tasks
Quick Access
Interactive Menu
iex (irm azcomputerguru.com/tools/msp-toolkit.ps1)
Direct Script Execution
# System Information
iex (irm azcomputerguru.com/tools/Get-SystemInfo.ps1)
# Health Check
iex (irm azcomputerguru.com/tools/Invoke-HealthCheck.ps1)
# Create Local Admin
iex (irm azcomputerguru.com/tools/Create-LocalAdmin.ps1)
# Configure Static IP
iex (irm azcomputerguru.com/tools/Set-StaticIP.ps1)
# Join Domain
iex (irm azcomputerguru.com/tools/Join-Domain.ps1)
# Install RMM Agent
iex (irm azcomputerguru.com/tools/Install-RMMAgent.ps1)
Parameterized Execution
# Run specific script from main menu
iex (irm azcomputerguru.com/tools/msp-toolkit.ps1) -Script systeminfo
iex (irm azcomputerguru.com/tools/msp-toolkit.ps1) -Script healthcheck
iex (irm azcomputerguru.com/tools/msp-toolkit.ps1) -Script localadmin
Available Scripts
Information & Diagnostics
Get-SystemInfo.ps1
Comprehensive system information report including:
- OS version and build
- Hardware specifications (CPU, RAM, disk)
- Network configuration
- Installed software
- Windows updates status
- Security settings
Usage:
iex (irm azcomputerguru.com/tools/Get-SystemInfo.ps1)
Output: Formatted console report with key system details
Invoke-HealthCheck.ps1
System health check and diagnostics including:
- Disk space warnings
- Service status verification
- Event log errors (last 24 hours)
- Network connectivity tests
- Antivirus status
- Windows Defender status
Usage:
iex (irm azcomputerguru.com/tools/Invoke-HealthCheck.ps1)
Output: Pass/fail status for each check with recommendations
System Configuration
Create-LocalAdmin.ps1
Create local administrator account with secure random password.
Features:
- Generates cryptographically secure 16-character password
- Creates account with Administrator group membership
- Password never expires setting
- Returns credentials for documentation
Usage:
iex (irm azcomputerguru.com/tools/Create-LocalAdmin.ps1)
# With custom username
iex (irm azcomputerguru.com/tools/Create-LocalAdmin.ps1) -Username "ACGAdmin"
Output: Username and generated password (save immediately!)
Set-StaticIP.ps1
Configure network adapter with static IP address.
Features:
- Lists available network adapters
- Sets IP address, subnet mask, gateway
- Configures DNS servers
- Validates configuration
Usage:
iex (irm azcomputerguru.com/tools/Set-StaticIP.ps1)
Interactive Prompts:
- Network adapter selection
- IP address
- Subnet mask
- Default gateway
- DNS servers (primary and secondary)
Join-Domain.ps1
Join computer to Active Directory domain.
Features:
- Validates domain reachability
- Prompts for domain admin credentials
- Joins domain
- Optional OU specification
- Restart prompt
Usage:
iex (irm azcomputerguru.com/tools/Join-Domain.ps1)
Interactive Prompts:
- Domain name (e.g., contoso.local)
- Domain admin username
- Domain admin password
- OU path (optional)
MSP Tools
Install-RMMAgent.ps1
Install GuruRMM monitoring agent.
Features:
- Downloads latest agent installer
- Installs with organization-specific API key
- Registers machine in GuruRMM
- Verifies service running
Usage:
iex (irm azcomputerguru.com/tools/Install-RMMAgent.ps1)
Configuration:
- Server URL: wss://rmm-api.azcomputerguru.com/ws
- API Key: Embedded in script (rotated periodically)
Project Structure
msp-toolkit/
├── msp-toolkit.ps1 # Main launcher with interactive menu
├── scripts/ # Individual PowerShell scripts
│ ├── Get-SystemInfo.ps1
│ ├── Invoke-HealthCheck.ps1
│ ├── Create-LocalAdmin.ps1
│ ├── Set-StaticIP.ps1
│ ├── Join-Domain.ps1
│ └── Install-RMMAgent.ps1
├── config/ # Configuration files (JSON)
│ ├── applications.json
│ ├── presets.json
│ ├── scripts.json
│ ├── themes.json
│ └── tweaks.json
├── functions/ # Shared functions
│ ├── public/
│ └── private/
├── deploy.bat # Deployment script
└── README.md
Development
Local Development
# Clone repository (if tracked in Git)
cd ~/claude-projects/msp-toolkit
# Edit scripts
code scripts/Get-SystemInfo.ps1
# Test locally
powershell -ExecutionPolicy Bypass -File scripts/Get-SystemInfo.ps1
Testing
# Test script syntax
powershell -File Test-Script.ps1
# Analyze with PSScriptAnalyzer
Install-Module -Name PSScriptAnalyzer -Force
Invoke-ScriptAnalyzer -Path scripts/Get-SystemInfo.ps1
Deployment
Automatic Deployment
# Run deployment script (Windows)
deploy.bat
Manual Deployment
# Deploy main launcher
scp msp-toolkit.ps1 claude@ix.azcomputerguru.com:/home/azcomputerguru/public_html/tools/
# Deploy all scripts
scp scripts/*.ps1 claude@ix.azcomputerguru.com:/home/azcomputerguru/public_html/tools/
# Set permissions
ssh claude@ix.azcomputerguru.com "chmod 644 /home/azcomputerguru/public_html/tools/*.ps1"
# Verify deployment
curl -I https://www.azcomputerguru.com/tools/msp-toolkit.ps1
Web Server Configuration
Location
Server: ix.azcomputerguru.com
Path: /home/azcomputerguru/public_html/tools/
URL: https://www.azcomputerguru.com/tools/
File Structure on Server
/home/azcomputerguru/public_html/tools/
├── msp-toolkit.ps1
├── Get-SystemInfo.ps1
├── Invoke-HealthCheck.ps1
├── Create-LocalAdmin.ps1
├── Set-StaticIP.ps1
├── Join-Domain.ps1
├── Install-RMMAgent.ps1
└── [other scripts]
Permissions
# Files: 644 (rw-r--r--)
chmod 644 /home/azcomputerguru/public_html/tools/*.ps1
# Directory: 755 (rwxr-xr-x)
chmod 755 /home/azcomputerguru/public_html/tools/
MIME Type
Apache serves .ps1 files as text/plain by default (correct for PowerShell scripts).
Security Considerations
Transport Security
- HTTPS Required: All scripts served over TLS
- Certificate: Let's Encrypt (auto-renewed via cPanel)
- Integrity: Scripts signed with code signing certificate (future enhancement)
Script Safety
- Execution Policy: Scripts use
-ExecutionPolicy Bypassflag - No Automatic Execution: User must explicitly run
iex (irm ...) - Review Before Use: Technicians should review scripts before deployment
- Sensitive Parameters: Passwords, API keys handled carefully
Best Practices
- Always review scripts before executing in production
- Test in sandbox environment first
- Validate script integrity (hash checking - future)
- Rotate API keys periodically (RMMAgent.ps1)
- Log script executions for audit trail
Usage Examples
Typical Workflow: New Client Onboarding
# 1. Gather system information
iex (irm azcomputerguru.com/tools/Get-SystemInfo.ps1)
# 2. Run health check
iex (irm azcomputerguru.com/tools/Invoke-HealthCheck.ps1)
# 3. Create local admin account
iex (irm azcomputerguru.com/tools/Create-LocalAdmin.ps1) -Username "ACGAdmin"
# SAVE PASSWORD IMMEDIATELY!
# 4. Install RMM agent
iex (irm azcomputerguru.com/tools/Install-RMMAgent.ps1)
# 5. Configure static IP (if needed)
iex (irm azcomputerguru.com/tools/Set-StaticIP.ps1)
# 6. Join domain (if applicable)
iex (irm azcomputerguru.com/tools/Join-Domain.ps1)
Troubleshooting Client Issue
# Quick diagnostic check
iex (irm azcomputerguru.com/tools/Invoke-HealthCheck.ps1)
# Detailed system information
iex (irm azcomputerguru.com/tools/Get-SystemInfo.ps1) | Out-File C:\system-info.txt
Future Enhancements
Planned Features
- Web-based UI for script selection and parameter input
- Script versioning and rollback capability
- Logging and execution history in GuruRMM
- Additional scripts for common MSP tasks
- API endpoints for RMM integration
- Multi-tenancy support (client-specific scripts)
Ideas
- Windows Updates: Script to check and install updates
- Software Deployment: Install common applications (Chrome, Adobe Reader, etc.)
- Security Audit: Comprehensive security posture assessment
- Network Diagnostics: Advanced network troubleshooting
- Backup Verification: Check backup status (Veeam, Windows Backup, etc.)
- Certificate Management: Check SSL/TLS certificate expiration
- Group Policy Status: Verify GPO application
- Event Log Analysis: Parse event logs for specific errors
Troubleshooting
Script Won't Download
Issue: iex (irm azcomputerguru.com/tools/script.ps1) fails
Check:
- Internet connectivity:
Test-NetConnection azcomputerguru.com -Port 443 - DNS resolution:
nslookup azcomputerguru.com - Firewall blocking HTTPS?
- Proxy configuration needed?
Solution:
# Test basic connectivity
Invoke-WebRequest -Uri https://www.azcomputerguru.com/tools/msp-toolkit.ps1 -UseBasicParsing
# Try with explicit proxy
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
Invoke-WebRequest -Uri https://www.azcomputerguru.com/tools/msp-toolkit.ps1 -Proxy $proxy.GetProxy("https://www.azcomputerguru.com")
Execution Policy Restriction
Issue: Script execution blocked by execution policy
Solution:
# Check current policy
Get-ExecutionPolicy
# Bypass for single session
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
iex (irm azcomputerguru.com/tools/script.ps1)
# OR use -ExecutionPolicy flag
powershell -ExecutionPolicy Bypass -Command "iex (irm azcomputerguru.com/tools/script.ps1)"
Script Error
Issue: Script fails with unexpected error
Debug:
# Enable verbose output
$VerbosePreference = "Continue"
iex (irm azcomputerguru.com/tools/script.ps1)
# Capture error details
try {
iex (irm azcomputerguru.com/tools/script.ps1)
} catch {
$_.Exception.Message
$_.ScriptStackTrace
}
Monitoring and Logs
Server Logs
Apache Access Log: /var/log/apache2/access_log or /usr/local/apache/logs/domlogs/azcomputerguru.com
Track Usage:
# Count script downloads
grep "GET /tools/" /var/log/apache2/access_log | wc -l
# Most popular scripts
grep "GET /tools/" /var/log/apache2/access_log | awk '{print $7}' | sort | uniq -c | sort -nr
Client Execution Logs
Future: Integrate with GuruRMM to log script executions
- Machine ID
- Script name
- Execution timestamp
- Result (success/failure)
- Output summary
Related Projects
GuruRMM: MSP monitoring platform (Install-RMMAgent.ps1 integration) ClaudeTools: Project tracking and documentation system MSP Operations: Internal tools and workflows
Source Repository
Location: C:\Users\MikeSwanson\claude-projects\msp-toolkit
Git Status: Not currently tracked in Git (consider adding)
Maintenance
Regular Tasks
Monthly:
- Review script usage statistics
- Check for PowerShell best practices violations
- Update documentation for new scripts
- Test scripts on Windows 10/11 and Server 2016/2019/2022
Quarterly:
- Security audit of scripts
- Rotate RMM agent API keys
- Review and implement feature requests
- Performance optimization
Annually:
- Comprehensive security review
- Major version updates
- Archive old/unused scripts
Support
Technical Contact: Mike Swanson Email: mike@azcomputerguru.com Phone: 520.304.8300
Internal Documentation: ~/claude-projects/msp-toolkit/
Deployment Server: ix.azcomputerguru.com
Project Status: Production - Active Use Version: 1.x (no formal versioning yet) Last Updated: 2026-01-22