5

Я знаю, что могу создать пакетный файл для инициирования VPN-соединения, за которым следует сеанс RDP, однако я хочу знать, возможно ли (в Windows 7 и в идеале в Windows XP) привязать VPN-соединение к состоянию сеанса RDP.

Сценарий: пользователь должен сначала подключиться к VPN, чтобы иметь возможность RDP. В идеале пользователь должен щелкнуть один значок (командный файл?) инициировать VPN-соединение и загрузить сеанс RDP. Когда они закрывают сеанс RDP, я хочу, чтобы VPN автоматически отключалась, чтобы они случайно не направили свой последующий просмотр без RDP + интернет-активность через VPN.

3 ответа3

5

Я понимаю, что этот вопрос очень старый, но подумал, что добавлю метод для любого, кто наткнется на него.

@echo off

:: Connecting to VPN...
rasdial "VPN Name" user pass

echo Running RDP...
"Connect to Server.rdp"

echo Finished - disconnecting from VPN...
rasdial "VPN Name" /disconnect

Rasdial встроен в Windows и используется для подключения и отключения. Замените "Имя VPN" на то, что вы называли своим VPN-соединением при настройке. Замените 'user' и 'pass' в первой строке на фактическое имя пользователя и пароль для подключения к VPN (даже если вы решили сохранить учетные данные при создании VPN, Rasdial требует их ввода).

Поскольку пакетные сценарии выполняются синхронно, rasdial завершит подключение к VPN до открытия файла RDP, и все время, пока открыт сеанс RDP, пакетный сценарий будет ожидать. Как только сеанс RDP будет закрыт, будет запущена последняя команда для отключения VPN. Просто!

Я стараюсь поставить ярлык на пакетный скрипт на рабочем столе и изменить его значок на обычный RDP (из C:\Windows\System32\mstsc.exe). Вы можете запустить минимизированный сценарий, если не хотите, чтобы пользователь видел окно cmd, но я хотел бы, чтобы оно было видимым, чтобы они могли видеть, есть ли какие-либо ошибки при подключении к VPN.

1

Если у вас есть отдельная клиентская программа VPN (например, Cisco AnyConnect), используйте Google, чтобы найти параметры командной строки для этого продукта, чтобы узнать, можно ли подключиться с помощью одной команды. Например: AnyConnect, универсальный клиент Cisco и клиент Windows VPN все поддерживают это. Однако для этого может потребоваться сохранить пароль в виде открытого текста в пакетном файле или сценарии.

Получив эту информацию, напишите пакетный файл, который вызывает VPN-клиент, вероятно, спит несколько секунд, чтобы убедиться, что VPN-соединение работает, и затем вызывает клиент удаленного рабочего стола из командной строки.

Если вы хотите быть по-настоящему модным, вместо того, чтобы спать, чтобы проверить соединение, вы можете иметь пинг к какому-либо ресурсу, доступному только через VPN, и заставить скрипт возвращать ошибку, если этот пинг не удался.

Возьмите свой пакетный файл, поместите его (или ярлык) на рабочий стол или где-либо еще, и затем у вас будет одно нажатие "подключиться к VPN и затем открыть приложение удаленного рабочего стола".

Если, с другой стороны, если ваш VPN-клиент таков, что вы не можете подключиться через командную строку, я бы заглянул в AutoIT или другие языки макросов скриптов мыши / клавиатуры, чтобы узнать, можете ли вы автоматизировать VPN-соединение.

0

Я смог использовать ответ @ Gechurch для Windows 10, изменив rasdial на rasphone следующим образом:

@echo off

:: Connecting to VPN...
rasphone.exe -d "My VPN"

echo Running RDP...
"Remote Server.rdp"

echo Finished - disconnecting from VPN...
rasphone.exe -h "My VPN"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .