Use this checklist to get LicenseView running in under 5 minutes!
Install PowerShell 7+:
# Windows - Use winget (built into Windows 10/11)
winget install Microsoft.PowerShell
# Or download installer from:
# https://github.com/PowerShell/PowerShell/releasesCheck if already installed:
pwsh --version # Should show 7.x or higherThat's it! No other software needed - all modules are included with LicenseView.
Install Python 3.10+:
- Download from: https://www.python.org/downloads/
- Make sure to check "Add Python to PATH" during installation
Install required packages:
pip install pyyaml requests- PowerShell 7+ (recommended) OR Python 3.10+
- Downloaded LicenseView from GitHub:
- Option A: Clone:
git clone https://github.com/your-org/licenseview.git - Option B: Download ZIP from GitHub and extract
- Option A: Clone:
- ZVM hostname or IP address
- Administrator username and password
- Network connectivity to ZVM (HTTPS port 443 or 9669)
# Navigate to project directory
cd "c:\path\to\licenseview"
# Copy template
cp config.example.yaml config.yaml- File
config.yamlcreated
Open config.yaml in your favorite editor:
notepad config.yaml
# or
code config.yaml # VS CodeChange these 4 values:
| Field | What to Change | Example |
|---|---|---|
zvm_url |
Your ZVM address | https://zvm.company.com or https://192.168.1.20 |
username |
Your Zerto username | admin or zerto-svc-account |
password |
Your Zerto password | Your actual password |
verify_tls |
true for production, false for lab |
true or false |
- ZVM URL updated
- Username updated
- Password updated
- TLS setting configured
Save the file!
PowerShell:
# First run will auto-create auth.config.json placeholder (if you need it for custom modules)
./zerto-licensing-report.ps1 -Config ./config.yaml -VerboseNote: If you see a warning about auth.config.json being a placeholder, you can ignore it unless you're using a custom authentication module (see docs/AUTH_CONFIG.md).
.\zerto-licensing-report.ps1 -Config .\config.yamlPython:
python main.py --config config.yaml- Command executed without errors
Reports are saved in the reports/ directory:
# View reports
ls .\reports\
# Open HTML report in browser
Start-Process .\reports\report.htmlYou should see:
-
report.html- Interactive dashboard -
licensing_utilization.csv- Excel-compatible data -
licensing_utilization.json- Structured data -
HTML report generated
-
CSV report generated
-
JSON report generated
-
HTML dashboard opens in browser
Your report should show:
-
License Information
- License key displayed (or masked)
- Entitled VM count
- Expiration date
- Utilization percentage
-
Site Information
- Site names listed
- Protected VM counts
- Site locations (if configured)
-
VPG Status
- Healthy VPG count
- Warning VPG count (if any)
- Critical VPG count (if any)
Causes:
- Incorrect username/password
- Wrong
auth.version(should be "10.x" for modern Zerto) - Network connectivity to ZVM
Fix:
# Test connectivity
Test-NetConnection -ComputerName zvm.company.com -Port 443
# Verify credentials by logging into ZVM web interface
# Then update config.yaml with correct credentials- Credentials verified
Causes:
- Self-signed certificate on ZVM
- Internal CA not trusted by your system
Fix:
# In config.yaml, set:
verify_tls: falseverify_tls: false in lab environments!
For production, see TLS_SETUP_GUIDE.md to properly trust your certificate.
- TLS issue resolved
Fix:
# Ensure you're in the correct directory
cd "c:\path\to\licenseview"
# Verify config.yaml exists
Test-Path .\config.yaml
# If it doesn't exist, copy from template:
cp config.example.yaml config.yaml- Config file found
Causes:
- No protected VMs in your environment
- API permissions insufficient
Fix:
-
Verify your Zerto environment has protected VMs
-
Ensure user account has "Read-Only Administrator" role
-
Check logs:
cat .\logs\report.log -
Data displaying correctly
Once your first report is running:
.\zerto-licensing-report.ps1 -Config .\config.yaml -VerboseWindows Task Scheduler:
# Create daily report at 8 AM
$action = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-File `"C:\path\to\zerto-licensing-report.ps1`" -Config `"C:\path\to\config.yaml`""
$trigger = New-ScheduledTaskTrigger -Daily -At 8am
Register-ScheduledTask -TaskName "LicenseView Daily Report" -Action $action -Trigger $triggerLinux Cron:
# Add to crontab (daily at 8 AM)
0 8 * * * /usr/bin/python3 /path/to/licenseview/main.py --config /path/to/config.yaml- Coming soon: Automatic email delivery of reports
- For now, manually email the HTML report from
reports/
See SECURITY.md for best practices:
# Set environment variables
$env:ZVM_USERNAME = "your-username"
$env:ZVM_PASSWORD = "your-password"
# Update config.yaml to use them:
# username: "${ZVM_USERNAME}"
# password: "${ZVM_PASSWORD}"- TROUBLESHOOTING.md - 🔧 Complete diagnostic guide (START HERE if issues)
- README.md - Full documentation
- TLS_SETUP_GUIDE.md - Certificate configuration
- SECURITY.md - Security best practices
- CONTRIBUTING.md - How to contribute
- GITHUB_PUBLICATION_GUIDE.md - Publishing to GitHub
If all checkboxes above are marked, you're successfully running LicenseView!
Share your success:
- ⭐ Star the repository on GitHub
- 🐦 Tweet about it with #Zerto #LicenseView
- 💬 Share feedback in GitHub Discussions
Need help?
- Open an issue: GitHub Issues
- Ask the community: GitHub Discussions
Last Updated: 2025
Version: 1.0.0