скрипт на powershell, но запустится из bat файла, если у вас Windows 8 и выше
powershell "$vpn=(Get-VpnConnection -Name название_ВПН_соединения);if ($vpn.ConnectionStatus -eq 'disconnected') {rasdial название_ВПН_соединения логин пароль} else {rasdial название_ВПН_соединения /disconnect}"
Если OS ниже Windows 8 то вот содержимое батника:
ping хост -n 1 > %TEMP%\ping1.txt
if %errorlevel%==1 (rasdial название_ВПН_соединения логин пароль) else (rasdial название_ВПН_соединения /disconnect)
Во втором случае нужно правильно выбрать хост который будете пинговать :
Если у вас так подключается интернет то это должен быть общедоступный хост из интернета (например 8.8.8.8 ). Если же у вы таким образом подключаетесь к рабочей сети - то хост должен из рабочей сети (недоступной без установленного подключения).