A complete, menu-driven PowerShell script that handles everything: install OpenVPN, generate certificates, add/revoke clients, configure NAT, and monitor your server — all from one script.
MIT License • v1.0.0 • Works on Windows Server 2019, 2022, Windows 10/11
Run this one-liner in PowerShell (as Administrator) to download directly:
Invoke-WebRequest -Uri "https://zeonedge.com/scripts/openvpn_windows_manager.ps1" -OutFile "openvpn_windows_manager.ps1"Or download from vpn.zeonedge.com:
Invoke-WebRequest -Uri "https://vpn.zeonedge.com/scripts/openvpn_windows_manager.ps1" -OutFile "openvpn_windows_manager.ps1"Open PowerShell as Administrator and run:
powershell -ExecutionPolicy Bypass -File openvpn_windows_manager.ps1Or if you're already in PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force; .\openvpn_windows_manager.ps1The script will guide you through:
Copy the generated .ovpn file from C:\Program Files\OpenVPN\clients\ to your devices and import into OpenVPN Connect.
Downloads & installs OpenVPN, EasyRSA, generates CA, server certs, DH params, and TLS keys
Asks for public IP, port, protocol, DNS, subnet, routes, NAT — no manual config editing
Add single clients or batch create (e.g., agent1–agent10). Self-contained .ovpn profiles
Revoke any client certificate and automatically regenerate CRL
VPN clients get internet access through the server's IP address
View service status, connected clients, port listening, NAT rules, and recent logs
Changed server IP or port? Regenerate all client .ovpn profiles at once
Remove all config, certs, and profiles — keeps OpenVPN software installed
╔══════════════════════════════════════╗
║ ZeonEdge OpenVPN Manager v1.0 ║
╚══════════════════════════════════════╝
OpenVPN is not yet configured.
1) Install & Configure OpenVPN
2) Exit
╔══════════════════════════════════════╗
║ ZeonEdge OpenVPN Manager v1.0 ║
╚══════════════════════════════════════╝
1) Add a new client
2) Add batch clients
3) Revoke a client
4) Server status dashboard
5) Regenerate all profiles
6) Remove OpenVPN config
7) Exit
Download and run in a single command (PowerShell as Admin):
Invoke-WebRequest -Uri "https://zeonedge.com/scripts/openvpn_windows_manager.ps1" -OutFile "$env:TEMP\openvpn_windows_manager.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\openvpn_windows_manager.ps1"Read the complete step-by-step tutorial with screenshots and troubleshooting on our blog:
Read the Full Guide