Connecting to a VPN in Windows is a bit painful if you do it frequently. It's a relatively simple task, but it's "death by a thousand right clicks", and it takes a good fifteen seconds. If you're on and off VPN's frequently, it's worth taking the time to improve the process.
Disable VPN Progress Updates
The simplest thing you can do is disable progress updates while connecting. When updates are show, even fast VPN's take about 15 seconds to complete the connection process; with progress updates disabled the connection is nearly instantaneous. I know that there's still networking stuff going on, but I'm generally able to use the network right away in that case.
Skip the Windows UI and VPN from the command line with RASDIAL.EXE
That's better, but it's still a slow clicky clicky process. You can create a shortcut to the VPN connection, but I usually skip that process and just create a one-line batch file for regularly used VPN's. That's easy, because RASDIAL.EXE is very simple. Old timers may remember RASDIAL for it's old purpose - handling dialup internet connections. It still does that, but nobody's using oldschool dialup anymore, are they? Dialup 2.0 is just phone-a-friend.
Keep in mind that RASDIAL won't allow you to set up a new VPN connection, which is fine because we don't need to do that. Set up the VPN as you always have, then use RASDIAL to connect and disconnect. There are really just three things you can do with RASDIAL - connect, disconnect, and check connection status.
Here's the syntax to connect with RASDIAL: rasdial entryname [username [password|*]] [/DOMAIN:domain] (there are dialup switches, I didn't list them)
Note that you've got the option of saving your password. If you're connecting from a secure computer with a strong password, I don't see any problem with that... just keep in mind that you're saving your password in plain text. The benefit of saving your password is that you can just run the batch file and you're connected - there's no Windows UI to deal with at all. Here's an example of the sort of command I've used for this:
rasdial megacorp jgalloway !tricky®password! /domain:megacorp
Disconnecting is even easier: rasdial [entryname] /DISCONNECT
So in the case above, I'd disconnect with this:
rasdial megacorp /disconnect
Checking connection status
That's super simple - running the command with no switches while connected will show you something like this:
C:\Documents and Settings\Jon>rasdial
Command completed successfully.
Setting up shortcuts
You can either set up shortcuts to rasdial with the above parameters, or you can create two batch files (vpn-megacorp-connect.bat and vpn-megacorp-disconnect.bat) and create shortcuts to them.
I don't see any reason why you couldn't work this into a script that sets up what you'll want to do once connected, for instance, you could follow rasdial with mstsc to connect to remote desktop to a machine. Remember to throw the /console switch onto your mstsc call if you're connecting to a desktop that may have other sessions in use.
rasdial megacorp username password /domain:megacorp
mstsc megaserver.rdp /console
No rocket surgery, but if you're connecting to a VPN frequently then it's worth taking 30 seconds to lessen the pain.