Windows does not really offer any good ways of setting up a permanent VPN connection that is stable.
People are literally loosing their minds over it.
We came up with a pretty nice solution to this problem by combining
- Windows Powershell
- Windows VPN Client
- Windows Task scheduler
- Make sure your VPN Server is set up and working. This will not be covered here.
- Set up a new VPN Connection. Just follow the usual “Connecto to a workplace” wizard. Make sure that the VPN connection works.
- After creating the connection – set these Redial properties. The redial functionality works as it should most of the time, but it’s not 100% trustable.
- Also – Uncheck “Use default gateway on remote network” – in order to prevent all network/internet trafic to go through the VPN (unless this is what you want).
- Since the Redial functionality of the VPN Connection isn’t trustable – it’s best to deal with this yourself. It’s
hammerpowershell time. Create c:\pn.ps1and add the following:
The script pings an IP that should be available through the VPN. If the ping is unsucecssfull – the connection is reestablished. You can also set up routes here (and get notifications by email every time the VPN was disconnected) if you add a few more lines to the script.
- Start up a powershell and type “Set-ExecutionPolicy Unrestricted” order to allow the script to be executed.
- Schedule this script to execute at startup (no user/login necessary) and also every 5 minutes.
- Bingo! You now have a robust and permanent VPN Connection in windows. This works with PPTP, L2TP, SSTP and IKEv2, and have been tested on Windows 7 and Windows 2008 R2.