OK, OK. Here it is, the finished product. Wasn't allowed to use Connection Manager or Network Manager. Reason unknown. Don't know if I'll ever need to do something like this again. But just incase you need to have a .vbs that does just this, enjoy. 'VBScript to Connect to VPN' 'For use by authorised Government personel only' 'Written by a Government Employee' 'Option Explicit On Error Resume Next 'Setting up a 5 minute timeout intMaxTime = 300 intStartTime = Timer Dim strDriveLetter, strRemotePath Dim CheckDrive, AlreadyConnected, intDrive ' Define vars Dim OWS, intReturn, objIE, strIETitle, objShell, strHost, objNetwork, intButton, blnConnected, sDialUpCmd, sResult ' define objects 'get current user set objNetwork = createobject("WSCRIPT.Network") dim strCurrentUser strCurrentUser = objNetwork.UserName Set OWS = CreateObject("Wscript.Shell") Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") 'This bit looks for Local machines RAS connection If IsRasConnected = True then Msgbox Ucase(strCurrentUser) & " - you're already connected to GovNetWireless. Exiting...." WScript.Quit End if intButton = OWS.Popup("Connect account to GovNet, are you sure?",30,"Connect to Department of Government ?",65) CheckWhetherTerminateScript If intButton = 2 or intButton = -1 Then WScript.Quit End if ' Run VPN link OWS.Run "rasphone.exe -d GovNetWireless" 'get RAS connected............... Do Wscript.sleep 5000 blnConnected = 0 CheckWhetherTerminateScript If IsRasConnected = True then 'WScript.Echo "RAS connected!" blnConnected = 1 Else 'WScript.Echo "RAS not connected!" blnConnected = 0 End If Loop Until (blnConnected = 1) 'end get RAS connected............... Wscript.sleep 5000 ' Connect Users Global Network Drive - in this case U: objNetwork.RemoveNetworkDrive "U:" OWS.Run "\\GovernentServer002\SYSVOL\gov.gov.gov.au\scripts\Gov_logon.bat" 'check u: connected............... Do Wscript.sleep 5000 blnConnected = 0 If IsDriveConnected("U:") = True then 'WScript.Echo "U: connected!" blnConnected = 1 Else 'WScript.Echo "u: not connected!" blnConnected = 0 End If Loop Until (blnConnected = 1) 'end check u: connected.............. ' Connect Users Global Network Drive - in this case N: MapDrive "N:", "\\GovernementServer\users\" & strCurrentUser WScript.Quit '************************************************* Function IsRASConnected '************************************************* Const SYSTEM_FOLDER = 1, TEMP_FOLDER = 2 ' FileSystemObject constants Set objFSO = CreateObject("Scripting.FileSystemObject") With objFSO ' Construct a temporary filename. Do strTempFile = .BuildPath(.GetSpecialFolder(TEMP_FOLDER), .GetTempName) Loop While .FileExists(strTempFile) strCmdLine = .BuildPath(.GetSpecialFolder(SYSTEM_FOLDER), "cmd.exe") _ & " /c " & .BuildPath(.GetSpecialFolder(SYSTEM_FOLDER), "rasdial.exe") _ & " > " & strTempFile End With CreateObject("Wscript.Shell").Run strCmdLine, 0, True ' Open the temporary file. Set objTS = objFSO.OpenTextFile(strTempFile, 1) sStdOut = lcase(objTS.ReadLine) If Not objTS.AtEndOfStream Then Select Case sStdOut Case "connected to": IsRASConnected = True Case "no connections": IsRASConnected = False Case Else: IsRASConnected = False End Select End If ' Close and delete the temporary file. objTS.Close objFSO.DeleteFile strTempFile Set objTS = Nothing Set objFSO = Nothing End Function '********************************************* Sub MapDrive(strDrive, strPath) ' The section sets the variables. strDriveLetter = strDrive strRemotePath = strPath ' This sections creates two objects: ' objShell and objNetwork and counts the drives Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") Set CheckDrive = objNetwork.EnumNetworkDrives() ' This section deals with a For ... Next loop ' See how it compares the enumerated drive letters ' with strDriveLetter On Error Resume Next AlreadyConnected = False For intDrive = 0 To CheckDrive.Count - 1 Step 2 If CheckDrive.Item(intDrive) =strDriveLetter Then AlreadyConnected =True Next ' This section uses the If = then, else logic ' This tests to see if the Drive is already mapped. ' If yes then disconnects If AlreadyConnected = True then objNetwork.RemoveNetworkDrive strDriveLetter objNetwork.MapNetworkDrive strDriveLetter, strRemotePath Else objNetwork.MapNetworkDrive strDriveLetter, strRemotePath End if End Sub Function IsDriveConnected(strDrive) ' The section sets the variables. strDriveLetter = strDrive Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") Set CheckDrive = objNetwork.EnumNetworkDrives() ' This section deals with a For ... Next loop ' See how it compares the enumerated drive letters ' with strDriveLetter On Error Resume Next AlreadyConnected = False For intDrive = 0 To CheckDrive.Count - 1 Step 2 If CheckDrive.Item(intDrive) = strDriveLetter Then IsDriveConnected = True Next End Function Sub CheckWhetherTerminateScript intCount = Timer - intStartTime If intCount >= intMaxTime then OWS.Popup "Timeout is about to happen...",5,"",vbExclamation WScript.Quit End if End Sub