Мне нужно написать пакетный скрипт, который автоматически подключается к vpn, когда имя пользователя и пароль сохраняются где-то (например, в файле). VPN-клиент - это openconnect, который предоставляет интерфейс командной строки, но проблема в том, что пользовательский ввод должен быть интерактивно предоставлен команде для ее завершения.
См. Вывод ниже при запуске:
openconnect <serverhostname>
OUTPUT
POST https://<serverhostname>/
Connected to <serverhostname>:443
SSL negotiation with <serverhostname>
Server certificate verify failed: signer not found
Certificate from VPN server "<serverhostname>" failed verification.
Reason: signer not found
To trust this server in future, perhaps add this to your command line:
--servercert pin-sha256:<somesha>
Enter 'yes' to accept, 'no' to abort; anything else to view:
Таким образом, я в основном должен набрать yes вручную и нажать Enter (также запрашивает дальнейший ввод), это необходимо автоматизировать в скрипте. Кроме того, стоит отметить, что в выводе предлагается указать параметр --server-cert
, и я мог бы сделать это, но когда он запрашивает пароль, для него нет выбора.
Я попытался поместить строки ввода в файл и перенаправив это на стандартный ввод команды (который не работал, но тот же метод работал на zsh на linux)
openconnect <serverhostname> < inputfile.txt
Я также попытался передать на стандартный ввод команды, которая также не работала работать.
Я думаю, что конкретная команда не читает из stdin, а напрямую из консоли, что-то, чего я действительно не знаю, но я мог найти немного информации о чем-то, называемом «CON», в cmd .
Любое решение высоко ценится.