Finally, a Windows 10 VPN solution that doesn't make you want to blow your brains out!

As a system administrator, I use many VPN connections throughout the day. Windows 10 is great, but whoever was in change of the VPN client in windows 10 at Microsoft did not deserve his/her bonus for this edition of windows!! It's slow, buggy, gives you no decent error. Fortunately, Mr gates left the good old rasphone intact so we can use this. 

The problem is, its still clunky loading in Windows 10. It can take 3-10 seconds to load the Rasphone each time you open it.

I've written a PowerShell script to make a tidy folder of useable shortcuts that you can add the to tool bar. Here's how it works.

1. Create a folder called "VPNs" in c:\

2. Right click the task bar > Toolbars > New Toolbar

3. Navigate to the VPNs folder and select it and click 'Select Folder'.

4. Paste this PS Script to s txt file. Save it as a .ps1 file.

Remove-Item -Path C:\VPNs\* -Recurse -Force
$vpnlist = Get-VpnConnection | Select Name -Skip 1
ForEach ($vpnname in $vpnlist.Name ){
$Shell = New-Object -ComObject ("WScript.Shell")
$ShortCut = $Shell.CreateShortcut("C:\VPNs\$vpnname.lnk")
$ShortCut.Arguments="-d `"$vpnname`""
$ShortCut.WorkingDirectory = "c:\windows\system32\";
$ShortCut.WindowStyle = 1;
$ShortCut.Description = "$vpnname";

5.You can check the status (See what VPNs are connected) with this script.

Get-VpnConnection | Where-Object {$_.ConnectionStatus -eq "Connected" } | Select Name,ConnectionStatus,TunnelType,ServerAddress,SplitTunneling | Format-Table

6. You can disconnect all VPNs at the same time with this script.

$vpnlist = Get-VpnConnection | Where-Object {$_.ConnectionStatus -eq "Connected" }
ForEach ($vpnname in $vpnlist.Name ){

  rasdial $vpnname /DISCONNECT;


PPTP VPN Stuck on Verifying username and password when dialling a Microsoft Routing and Remote Access Server


When dialling a PPTP VPN, the dial up fails and hangs on verifying username and password. It then produces an 806 error.


In my case, port 1723 was open and i could prove this by viewing the router and by telnet to the IP and port 1723. The issue stood out as an authentication problem as this is where the process hangs. 

The solution was to enable "Routing and Remote Access (GRE-In) on the domain profile of the RRAS server. 

No idea how this turned itself off, but it did. 

Unable to enable/disable remote gateway on VPNs in Windows 10

If you are on Windows 10 and can’t change your “remote gateway” setting for VPNs (As windows 10 ipv4 properties button does not work), Here is a workaround:


  1. Get-VpnConnection
  2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True

You could do this for all VPN connection simoultaniously like this:

Get-VPNConnection | Set-VPNConnection -SplitTunneling $True

Rasphone is slow to open

I use Windows 10, so when dialing VPNs I opt for the Rasphone as it keeps the VPNs in alphabetical order. The Rasphone dialer started to take a very long time to open which was impacting my work.

The solution was this:

Open an elevated command prompt and run the following command:

netsh ras set tracing * disabled

Verify it with 

netsh ras show tracing

You can also optionally clear down the log %windir%/tracing/rasphone_RASAPI32.log

Windows 10 VPN shortcut

Here is a quick way to launch a VPN connection in Windows 10.

Create a folder somewhere tidy then create a batch file for each connection as follows:

@echo off
rasdial "My VPN connection name here"
Give it a nice Icon, and then once you have compiled all of the VPN connections add the folder to your task bar for a nice pop up list of all your VPNs!